繁体   English   中英

Itext 在 PDF 中嵌入字体

[英]Itext embed font in a PDF

我有一个使用 Foxit 表单设计器创建的 pdf。 在我的设计系统上,我安装了条形码字体。 条形码字体用于 AcroField 之一。 foxit 似乎没有在文档中嵌入字体。

我也有客户没有在他们的计算机中安装条形码字体,因此我想将字体嵌入到 PDF 中。 有没有办法让我使用 iText 将 AcroFields 中使用的字体嵌入到 PDF 中?

编辑:字体似乎包含在文本中,但不包含在字段中,因此字体(条形码)不会打印。

我几乎可以肯定您现在已经得到了答案,但也许其他人想详细了解解决方案。 下面是我用来在生成的 PDF 中嵌入 fonts 的示例 java 代码(仅在某些情况下有用),因为文档的大小会急剧增加。 作为创建 PDF forms 的免费工具,我使用了 OpenOffice 编写器,通过在文档中添加 forms 并将文档导出为 ZBCD1B68603Z67509 文件:

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();
PdfContentByte ab = yourPDFWriter.getDirectContent();
// field: PdfFormField.createTextField(...);
PdfAppearance ap = ab.createAppearance(320, 30); // size of field
field.setDefaultAppearanceString(ap);

这应该够了吧。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM