Winnovative Html到PDF转换器不能渲染font-face字体

时间:2013-08-12 16:24:59

标签: c# font-face winnovative

我正在使用Winnovative的Html to PDF转换器将我的页面打印为PDF。

// Get a PDF of the URL.
Document document = new Document();
//document.LicenseKey = PDFUtility.LicenseKey;

PdfPage page = document.Pages.AddNewPage(PdfPageSize.A4, new Margins(10, 10, 0, 0), PdfPageOrientation.Portrait);

HtmlToPdfElement pageToPrint = new HtmlToPdfElement(sURL);
page.AddElement(pageToPrint);

// Setup response
context.Response.ContentType = "application/pdf";
context.Response.AddHeader("Content-Disposition", string.Format("attachment; filename ={0}", sPage + ".pdf"));

document.Save(context.Response.OutputStream);

我的标题标记上有一个字体。这在本地工作正常,并使用自定义字体呈现。但是在我的开发和测试服务器上它根本不呈现标头标签。它确实留下了标题标签所在的空间。

当我们将标题更改为Arial时,PDF会在所有环境中使用标题呈现。

我们检查了字体文件的权限(为每个人设置完全控制权限)。这并没有改变任何事情。

与字体有关的东西在我们的服务器上无效,我们无法弄清楚是什么。

3 个答案:

答案 0 :(得分:0)

您必须检查您的字体文件是否可以在浏览器中从服务器本身访问。将HTML代码放在HTML文件中,然后在浏览器中从测试服务器打开该文件。如果HTML文件在浏览器中很好地显示,它也应该在PDF中很好地呈现。

您还应该确保服务器中的IIS具有ttf或woff(不确定您在@ font-face中引用的内容)在接受的MIME类型中设置,否则这些文件将不会由Web服务器提供。 / p>

答案 1 :(得分:0)

我在解决方案中也显示网页字体时也遇到类似的问题。

事实证明,woff2字体根本没有呈现。

一旦我切换到woff文件格式,一切都会按预期进行。

从我看到的结果来看,转换器中没有未启用的设置,因此我猜想不支持woff2

答案 2 :(得分:-1)

是的,您必须确保在您的Web服务器MIME类型中启用了字体文件。 Winnovative HTML to PDF转换器适用于所有类型的字体。在Convert HTML with Web Fonts to PDF demo中使用@ ont-face规则有一个完整的C#和HTML代码示例。