我們在我們的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後發生問題。你解決了你的問題嗎? –