2013-02-11 5 views
2

Я потратил эоны на погружение в @ проблемы шрифта для языков RTL, рендеринг шрифтов в разных браузерах, поддержка PDF , и так далее.Как обеспечить, чтобы шрифты выглядели одинаково во всех браузерах/платформах (Cufon? Images? SIFR) для рендеринга 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. Я думаю, что единственное, что мне действительно нужно сделать, это то, что шрифт hinting является единообразным. Или все сводится к использованию изображений?
  2. В стороне, имеет ли HTML5 какой-то кросс-браузерный шрифт-рендеринг?

ответ

0

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

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

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

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

С уважением.