我正在尝试使用ABCPdf从html渲染PDF。 css包含自定义字体。我按照说明(Using @font-face with ABCPDF? Or other way of getting fonts into PDF?和EmbedFont Function)进行了操作,并通过以下方式取得了一定程度的成功:
调用EmbedFont方法。如下。
pdfDoc.Font = pdfDoc.EmbedFont("icomoon Regular", LanguageType.Latin);
pdfDoc.Font = pdfDoc.EmbedFont("Open Sans Bold", LanguageType.Latin);
pdfDoc.Font = pdfDoc.EmbedFont("Open Sans Bold Italic", LanguageType.Latin);
pdfDoc.Font = pdfDoc.EmbedFont("Open Sans Extrabold", LanguageType.Latin);
pdfDoc.Font = pdfDoc.EmbedFont("Open Sans Extrabold Italic", LanguageType.Latin);
pdfDoc.Font = pdfDoc.EmbedFont("Open Sans Italic", LanguageType.Latin);
pdfDoc.Font = pdfDoc.EmbedFont("Open Sans Light", LanguageType.Latin);
pdfDoc.Font = pdfDoc.EmbedFont("Open Sans Light Italic", LanguageType.Latin);
pdfDoc.Font = pdfDoc.EmbedFont("Open Sans Regular", LanguageType.Latin);
pdfDoc.Font = pdfDoc.EmbedFont("Open Sans Semibold", LanguageType.Latin);
pdfDoc.Font = pdfDoc.EmbedFont("Open Sans Semibold Italic", LanguageType.Latin);
pdfDoc.Font = pdfDoc.EmbedFont("Sanchez Italic", LanguageType.Latin);
pdfDoc.Font = pdfDoc.EmbedFont("Sanchez Regular", LanguageType.Latin);
我使用Gecko引擎和pdfDoc.AddImageHtml(html,false,documentWidth,true)来渲染pdf
如果我在安装了字体的计算机上查看PDF,它可以正常工作。
如果我在不安装了字体的计算机上查看PDF,则只有第一种字体可用(icomoon Regular)。为什么呢?
答案 0 :(得分:0)
我实际上最终不需要字体,但我相信这个问题可以通过设置
来解决pdfDoc.HtmlOptions.FontProtection = false;
答案 1 :(得分:0)
我设法通过添加这两个选项来实现这一目标:
doc.HtmlOptions.FontEmbed = true;
doc.HtmlOptions.FontProtection = false;
我只有一种特殊字体(icomoon)。