5

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?

Ross Presser
  • 6,027
  • 1
  • 34
  • 66

2 Answers2

8

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.

Ross Presser
  • 6,027
  • 1
  • 34
  • 66
  • 3
    A clarification on this - ABCpdf WILL render fonts if they are installed on the machine rendering the pdf (no face-face css). However, if you do include font-face css it may actually break this behavior - causing it to not even embed installed fonts anymore. There I just saved you 3 days of hair pulling. – gorebash May 16 '14 at 17:47
  • "Installed on the machine" is the situation I want to avoid ... I believe I covered that in my initial question. It's easy to get non-installed fonts useable by HTML Styled Text (`doc.AddHtml`). The goal was to get them available to the Gecko engine (`doc.AddImageHtml`). – Ross Presser May 16 '14 at 17:52
  • A note for those trying to use Glyphicons (will probably also work with bootstrap's Glyphicon-halflings): I was able to get glyphs working with `doc.AddImageHtml` by adding the following css *only* when building a pdf: `.glyphicons { font-family:GLYPHICONS !important; }` (the font will need to be installed on the server and the server rebooted) – snumpy Sep 18 '15 at 15:00
7

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