We have a large application successfully using ABCPDF.NET with HTML Styled text. We're accustomed to adding text using fonts not installed in Windows, but stored in files elsewhere in the filesystem -- we do this so each user can upload their own fonts and use them with the output. We use the AddFont call to embed the font in the Doc, then reference the font in a tag for HTML Styled text with the AddText call.
We're starting to look at using AddImageUrl / AddImageHTML to get more HTML power. Fonts are therefore a sticking point. It seems that both the MSHTML and Gecko engines will only see the same font list that Windows will.
I tried this code to see if @font-face will work with Gecko:
Sub Main
dim pdf as new Doc
with pdf.HtmlOptions
.Engine = EngineType.Gecko
.FontEmbed = true
.FontSubstitute = false
.FontProtection = false
end with
pdf.AddImageUrl("http://www.w3.org/2010/09/web-on-tv/slides/1009-tv-web-chaals/demos/webfonts.htm")
pdf.Save("c:\temp\a.pdf")
End Sub
But it won't. Is there anything else I can do?
This is with ABCpdf.NET 8.1.0.7. Would upgrading to 9 or a later release of 8 help at all?
NOTE:
As of ABCpdf 11, this works. Font files must either be at an accessible HTTP/HTTPS url (works with either AddImageHTML()
or AddImageURL()
or, if you wish to use a file:///
URL, you must write the HTML to a file and use AddImageURL()
. Font files can be OpenType, TrueType, Type 1 or WOFF webfonts.
Sample code given in question works now, unchanged.
Previous answer:
WebSuperGoo responded:
ABCpdf does not currently support fonts added using @font-face.
So, as of the 9.0 release of ABCpdf, that's that.
I work on ABCpdf and I can tell you that it is down as a feature request. The more people request it the sooner it will come. :-)
来源:https://stackoverflow.com/questions/16020072/using-font-face-with-abcpdf-or-other-way-of-getting-fonts-into-pdf