Как сделать так, чтобы шрифты выглядели одинаково во всех браузерах / платформах (Cufon? Images? SIFR) для рендеринга PDF

Я потратил целую вечность на изучение проблем @ 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-документ. По сути, мой вопрос:

  1. Как лучше всего гарантировать, что текст, который пользователь видит в своем браузере, в точности является тем, что он увидит в PDF-файле? Мне на самом деле не нужно, чтобы он был точным до пикселя, если текст, по крайней мере, следует за одними и теми же переносами строк с заданной шириной для содержащего div. Я думаю, единственное, в чем мне действительно нужно убедиться, это в том, чтобы хинтинг шрифта был единообразным. Или все сводится к использованию изображений?
  2. Кстати, есть ли в HTML5 какой-то кроссбраузерный рендеринг шрифтов?

person user961627    schedule 11.02.2013    source источник


Ответы (1)


Я могу предложить вам две вещи:

Используйте em для размера ваших шрифтов. em - мера относительная.

Не используйте sIFR или что-либо еще, основанное на рендеринге флэш-памяти, потому что он не будет работать на мобильных устройствах, не поддерживающих флэш.

Невозможно отобразить одно и то же во всех существующих веб-браузерах, это будет похоже на рай. Но поскольку нас там нет, я предлагаю вам также немного уменьшить шрифт, пока он не будет соответствовать вашей цели.

С Уважением.

person Guillermo    schedule 27.11.2013