我们在我们的MVC .NET项目中使用Proxima Nova字体(特别是Proxima Nova Condensed regular),但它们不会正确嵌入到PDF输出中。在查看PDF属性时,我看到列出了“ProximaNovaCond-Regular(嵌入式)”,其旁边的图标看起来像一个带有灰色“F”的页面。我还看到Arial Narrow和Arial Narrow,Bold以“(嵌入子集)”列出,并且该文档似乎是默认的。字体不会嵌入ABCpdf
我不使用的CSS @字体面,而是这样做:
font-family: "Proxima Nova Cn Rg", "Proxima Nova Cond", "Proxima Nova Condensed";
在生成页面控制器功能,有这样的代码:
var targetDocument = CreateNewDoc(orientation, paperSize);
targetDocument.HtmlOptions.FontEmbed = true;
targetDocument.HtmlOptions.FontSubset = false;
targetDocument.HtmlOptions.FontSubstitute = false;
targetDocument.HtmlOptions.FontProtection = false;
targetDocument.Font = targetDocument.EmbedFont(Server.MapPath("\\Content\\fonts\\proxima-nova\\ProximaNova-Reg-webfont.ttf"));
targetDocument.Font = targetDocument.EmbedFont(Server.MapPath("\\Content\\fonts\\proxima-nova\\ProximaNova-Sbold-webfont.ttf"));
如果项目在本地运行,字体似乎可以工作,但不在服务器上。字体安装在服务器上。我们可能会忽略字体或我们如何嵌入它们?我研究了关于字体嵌入的几个不同的其他问题,但是他们都没有提供任何解决方案来解决我们的情况。我不确定在这里提供的其他信息,但让我知道可能需要什么来回答我的问题,我会找到它。
编辑: 我可以发誓我更新了这个...道歉的响应者。不幸的是,我无法接受任何答案,因为我们无法解决问题。
你是如何在服务器上安装字体的? – Caveman
嗨 - 我有类似的问题。由于我在comm下使用ActiveX DLL,所以它的环境很差,但是我试图从特定路径添加一个'private'字体。 DLL可以访问字体并在由PDF生成的位图中生成精确的字形,但PDF包含Times New Roman而不是预期的字体。系统在Win2008上运行良好 - 移植到Win2012后发生问题。你解决了你的问题吗? –