質問

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();

他のヒント

PdfContentByte ab = yourPDFWriter.getDirectContent();
// field: PdfFormField.createTextField(...);
PdfAppearance ap = ab.createAppearance(320, 30); // size of field
field.setDefaultAppearanceString(ap);

これでうまくいくはずです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top