字体未嵌入ItextSharp中

时间:2016-08-05 12:48:24

标签: fonts itext

我有一个打印过程,我们不允许字体替换来维护文档的完整性。实现此目的的唯一方法是确保嵌入所有字体。我在调用FontFactory.GetFont(字符串字体名,字符串编码,bool嵌入,浮点大小)重载时指定嵌入选项。下面的代码是我用来试图找出解决方案的测试代码。不幸的是,生成的pdf没有嵌入字体。

    public static void TestPDFEmbedd()
    {
        Document document = new Document();
        PdfWriter.GetInstance(document, new FileStream(SystemPaths.SystemPath + "\\Production\\Test.pdf", FileMode.Create));
        document.Open();
        FontFactory.Register("c:\\windows\\fonts\\tahomabd.ttf","address_font");
        Font font = FontFactory.GetFont("address_font",BaseFont.CP1252,true,10f);
        document.Add(new Paragraph("Testing 123", font));
        document.Close();

    }

1 个答案:

答案 0 :(得分:1)

此问题无法再现。测试得到以下PDF:

enter image description here

我意识到这不是一个答案,但这是我想到分享屏幕截图的唯一方法。实际上,这个问题没有答案,因为所描述的问题无法使用共享的信息重现。

如您所见,iTextSharp嵌入了字体。更具体地说,是字体的子集。如果要嵌入完整字体,则需要使用此问题的答案中说明的方法:embed font into pdf using itextsharp

阅读这个答案,您还会注意到过去有一些字体错误;当人们抱怨某些不起作用的东西时,我们总是假设他们使用的是最新版本。这种假设是合理的,因为人们抱怨多年前修复过的错误是没有意义的。