私は現在、.NET でPDF Sharpを使用して、これらのタイプのドキュメントの形式のために出力を生成するために直接描画方法を多用する PDF ドキュメントを生成しています。これは、非常に小さいながらも非常に詳細なベクター ベースのドキュメントを作成する効率的な形式です。
Javaでまったく同じことをする必要があります。過去に iText を使用したことがありますが、制限があり、画像を埋め込む必要があったため、ドキュメントが非常に大きくなり、うまくスケーリングできませんでした。
iText でも直接描画を使用できます。グラフィックデバイスで iText API または awt API を使用できます。線を引く例:
PdfContentByte cb = writer.getDirectContentUnder();
cb.saveState();
cb.setLineWidth(1.2);
cb.setColor(BaseColor.DARK_GRAY);
cb.moveTo(x, y);
cb.lineTo(x + width, y);
cb.stroke();
cb.restoreState();