使用iText将字体嵌入PDF文件

时间:2009-11-21 09:18:05

标签: fonts map embed tags itext

我定义了一个标签映射,并获得了一个XML数据文件。我想使用iText将XML数据文件转换为PDF。问题是如何在将XML转换为PDF时将字体(例如波兰字体,中文字体)嵌入到目标PDF中?

4 个答案:

答案 0 :(得分:9)

如果您正在使用iText做更多工作,您可能需要投资iText book - 它有iText所有功能的示例。

在创建定义字体嵌入的字体时,您指定了一个参数:

BaseFont helvetica = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.EMBEDDED);
Font font = new Font(helvetica, 12, Font.NORMAL);

您可以在此处找到更多与iText字体相关的示例: http://1t3xt.info/examples/browse/?page=toc&id=14

答案 1 :(得分:6)

但是,如果您没有单一字体匹配您使用的任何字符,并且您需要多种字体,则会遇到问题。

在这种情况下, FontSelector 类适合您。

我写了一篇简短的文章:
http://lechlukasz.wordpress.com/2010/01/06/using-dynamic-fonts-for-international-texts-in-itext/

答案 2 :(得分:6)

这是指示iText嵌入所有字体的一种非常简单的方法。在代码之前插入此代码以加载字体:

FontFactory.defaultEmbedding = true;

答案 3 :(得分:0)

您可以尝试将其转换为嵌入了所有字体的PDF / A.

    PdfReader reader = new PdfReader(GetTemplateBytes());
    pst = new PdfStamper(reader, Response.OutputStream);

    pst.Writer.SetPdfVersion(PdfWriter.PDF_VERSION_1_4);
    pst.Writer.PDFXConformance = PdfWriter.PDFA1A;