Я потратил целую вечность на изучение проблем @ font-face для языков RTL, рендеринга шрифтов в разных браузерах, поддержки PDF и так далее.
Моя цель - иметь CSS-совместимый арабский (язык RTL) текст в HTML-документе, который при отображении в PDF выглядит, отображает и упаковывает в PDF-файл точно так же, как и на веб-страницу HTML, независимо от браузера или платформы пользователя.
Я использовал @ font-face, но оказалось, что машины с Windows визуализируют шрифты немного шире, чем на Mac, в то время как генератор PDF не зависит от браузера и, похоже, отображает шрифты больше, чем это делает Mac. Так происходит, что пользователи Windows видят одну строку текста, в то время как в PDF-файле последнее слово в этой строке переносится на следующую строку, и поэтому PDF-файл не совсем такой, как ожидал пользователь Windows.
В какой-то момент я подумал, что Cufon может быть решением, потому что, по-видимому, он выглядит одинаково с кросс-браузером, но я думаю, что он не поддерживает арабский? Я пробовал сгенерировать PDF-файлы с помощью wkhtmltodpf и PhantomJS, но, несмотря на то, что они являются потрясающими «виртуальными» браузерами, оба используют Webkit QT, который отображает текст иначе, чем Windows, поэтому в созданном PDF-файле снова были обтекания строк или ширина текста, которые не совпадали. как исходный HTML-документ. По сути, мой вопрос:
- Как лучше всего гарантировать, что текст, который пользователь видит в своем браузере, в точности является тем, что он увидит в PDF-файле? Мне на самом деле не нужно, чтобы он был точным до пикселя, если текст, по крайней мере, следует за одними и теми же переносами строк с заданной шириной для содержащего
div
. Я думаю, единственное, в чем мне действительно нужно убедиться, это в том, чтобы хинтинг шрифта был единообразным. Или все сводится к использованию изображений? - Кстати, есть ли в HTML5 какой-то кроссбраузерный рендеринг шрифтов?