我有一个使用Foxit表单设计器创建的pdf.在我的设计系统上,我安装了条形码字体.条形码字体用于其中一个AcroFields.似乎foxit没有在文档中嵌入字体.
我也有客户没有在他们的计算机上安装条形码字体,因此我想将字体嵌入到PDF中.有没有办法让我使用iText将AcroFields中使用的字体嵌入到PDF中?
编辑:字体似乎包含在文本中,但不包括字段,因此字体(条形码)将不会打印.
我几乎可以肯定你现在得到了答案,但也许其他人希望得到解决方案的详细信息.下面是我用于在生成的PDF中嵌入字体的示例java代码(仅在某些情况下有用,因为文档的大小会急剧增加).作为创建PDF表单的免费工具,我使用OpenOffice编写器,在文档中添加表单并将文档导出为PDF文件:
PdfReader pdfTemplate = new PdfReader(templateName); ByteArrayOutputStream out = new ByteArrayOutputStream(); BaseFont unicode = BaseFont.createFont(unicodeFontPath, BaseFont.IDENTITY_H, BaseFont.EMBEDDED); PdfStamper stamper = new PdfStamper(pdfTemplate, out); //assigning the font to the field stamper.getAcroFields().setFieldProperty("myField", "textfont", unicode, null); stamper.getAcroFields().setField("myField", someValue); stamper.close(); pdfTemplate.close();