Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using @font-face with ABCPDF? Or other way of getting fonts into PDF?

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?

like image 572
Ross Presser Avatar asked Apr 15 '13 16:04

Ross Presser


2 Answers

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.

like image 80
Ross Presser Avatar answered Oct 17 '22 11:10

Ross Presser


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. :-)

like image 7
OnceUponATimeInTheWest Avatar answered Oct 17 '22 10:10

OnceUponATimeInTheWest