我正在使用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会在所有环境中使用标题呈现。
我们检查了字体文件的权限(为每个人设置完全控制权限)。这并没有改变任何事情。
与字体有关的东西在我们的服务器上无效,我们无法弄清楚是什么。
答案 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代码示例。