iTextを使用して、シンプルだがPDF/A-1b準拠のPDFファイルを作成する必要があります。
私の最初のアプローチは次のようになります。
Document document = new Document(Pagesize.A4);
ByteArrayOutputStream pdfBuffer = new ByteArrayOutputStream);
PdfAWriter pdfAWriter
= PdfAWriter.geInstance (document, pdfBuffer, PdfAConformanceLevel.PDFA_1B);
pdfAWriter.createXmpMetadata();
Font fixedFont = FontFactory.getFont("Courier New", BaseFont.CP1252, BaseFont.EMBEDDED, 10, Font.NORMAL);
document.open();
Chunk chunk = new Chunk("Hello World", fixedFont);
Paragraph paragraph = new Paragraph(chunk);
document.add(paragraph);
document.close();
// this is pseudo code to transfer the Buffer to a real file
writeByteArrayToFile(pdfBuffer.toByteArray());
このコードは、次のエラー メッセージを生成します。
すべてのフォントを埋め込む必要があります。これは違います: Helvetica
周りを見回すと、Helvetica は変更できない iTextn のデフォルトのドキュメント フォントであり、これはデフォルトでは埋め込まれていないベース PDF フォントであり、Helvetica pfb または ttf ファイル (これはドキュメントでそのフォントをまったく使用する予定がないため、持っていませんし、購入するつもりもありません)。
PDF に Helvetica テキストはまったく必要ありません。PDF ベース フォントを含むすべてのフォントを埋め込む必要がある PDF/A-1b を生成する必要があります。
これはバグですか?Helvetica Fontファイルが利用できない場合、iTextでPDF/Aを生成する正しい方法は何ですか?