jcomponent (大量のテキストや線、小さな画像 (小さな単語アプリケーションのようなもの) を描画するカスタム paintcomponent メソッド) を PDF にエクスポートしたいと考えています。
私のコンポーネントは「法案」です
これに使用する方法(これは機能しますが、一部の方法は非推奨です)は次のとおりです。
com.itextpdf.text.Rectangle r = new com.itextpdf.text.Rectangle(0,0,bill.getWidth(),bill.getHeight());
Document document = new Document(r);
try {
PdfWriter writer;
writer = PdfWriter.getInstance(document, new FileOutputStream(f));
document.open();
PdfContentByte cb = writer.getDirectContent();
PdfTemplate tp = cb.createTemplate(bill.getWidth(), bill.getHeight());
Graphics2D g2d = tp.createGraphics(bill.getWidth(), bill.getHeight(), new DefaultFontMapper());
bill.addNotify();
bill.validate();
bill.paint(g2d);
g2d.dispose();
cb.addTemplate(tp, 0, 0);
}
catch(Exception e) {
e.printStackTrace();
}
document.close();
これは非常にうまく機能しますが、2 つの大きな問題があります。メソッド tp.createGraphics は推奨されていません (したがって、より良い解決策があるかもしれません)。そして、swing コンポーネントが非常に大きい場合、PDF の 1 ページだけに印刷されます。
だから私が必要としているのは、A4サイズのページを印刷しやすいように作成するのに役立つ「ページスプリッター」です。もちろん、jcomponentが非常に大きい場合、バッファオーバーフローはありません...
誰でも助けることができますか?