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