Шрифт символа на ABCpdf - PullRequest
       7

Шрифт символа на ABCpdf

5 голосов
/ 23 сентября 2011

Я использую компонент ABCpdf.net для преобразования HTML в PDF.Некоторые из HTML используют шрифт Symbol для отображения определенных символов.К сожалению, мы потребляем HTML от стороннего производителя, и его нельзя изменить.

Моя среда разработки отображает шрифт правильно, но моя производственная среда не будет.Он действует так, как будто шрифт не установлен, даже если он установлен.Если я отображаю тот же HTML-код в Internet Explorer в производственной среде, он отображается нормально.

Я попытался встроить шрифт как .eot и предоставить стиль @ font-face в заголовке.Я пытался использовать TheDoc.AddFont («Символ»).Любые предложения?

Продукт: ABCpdf .NET 7 x64

Производственная ОС: Windows Server 2003 x64, IE8

Разработка ОС: Win7 x64, IE8

Ответы [ 3 ]

6 голосов
/ 23 сентября 2011

Команда поддержки WebSuperGoo ответила исправлением: настройка связанных со шрифтами HtmlOptions. Я установил эти параметры, и это решило проблему. Ура!

If you want to embed the fonts used in a web page/HTML you need to use:
    Doc.HtmlOptions.FontEmbed = True
You may also need to set
    Doc.HtmlOptions.FontSubstitute = False
and possibly:
    Doc.HtmlOptions.FontProtection = False
before you use the Doc.AddImageUrl or Doc.AddImageHtml methods.

Редактировать: как я уже упоминал в комментарии ниже, опция, которая сделала трюк, была FontProtection = false.

2 голосов
/ 20 января 2012

Хотя я сказал, что Doc.HtmlOptions был ответом, оказалось, что это было что-то совершенно другое.Символы не отображались, потому что вес шрифта был ненормальным (т. Е. Он был жирным шрифтом ).Не существует жирного подмножества, содержащего эти символы.IE достаточно умен, чтобы игнорировать жирную часть, но PDF довольно привередлив.Он не может найти персонажа, поэтому он просто ничего не показывает.

Реальным решением было прочесать HTML и убедиться, что все символы окружены span с font-weight: normal !important.Возможно, это менее изящное решение, но оно эффективно.Единственный символ, который все еще случайно отказывался появляться, - это символ угла (∠).Для этого я заменил его на изображение.Я до сих пор не могу понять, почему он не появится.

2 голосов
/ 23 сентября 2011

Попробуйте перезапустить сервер.

У меня была похожая проблема со шрифтами в ABCPdf. Хотя шрифты были четко установлены, по какой-то причине ABDPdf не брал их, пока машина не была перезапущена.

Может быть некоторый не перезапускаемый способ достижения того же самого, но это повлечет за собой понимание, в чем проблема! Если это просто, попробуйте перезапустить.

...