Как да гарантираме, че шрифтовете изглеждат еднакво във всички браузъри/платформи (Cufon? Изображения? 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´s за размера на вашите шрифтове. em's са относителна мярка.

Не използвайте sIFR или нещо, базирано на флаш изобразяване, тъй като няма да работи на мобилни устройства, които не поддържат флаш.

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

За разбирането.

person Guillermo    schedule 27.11.2013