1

私は jscrollpane 内に jpanel を持っています。 jpanel(一部を含むlabel)のすべてのコンテンツtextareaを pdf 形式にエクスポートしたいと考えています。現在、私は次のコードを使用していますjbutton:

Document document = new Document(PageSize.A4.rotate(),50,50,50,50);
try {
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("C:\\Users\\Admin\\Desktop\\test1.pdf"));
document.open();
PdfContentByte contentByte = writer.getDirectContent();
//jp is the jpanel
PdfTemplate template = contentByte.createTemplate(jp.getWidth(), jp.getHeight());
Graphics2D g2 = template.createGraphics(jp.getWidth(),jp.getHeight());
g2.scale(0.8, 1);
        jp.printAll(g2); // also tried with jp.paint(g2), same result
        g2.dispose();

        //document.close();
contentByte.addTemplate(template, 5, 60);
} catch (Exception e) {
e.printStackTrace();
}
finally{
if(document.isOpen()){
    document.close();
}

}

出力: pdfの下部を取得していjpanelます... (jpanel のサンプショットを作成しましたが、私の評判では画像の投稿が許可されていません)、上部は破棄されています。最後の部分は単一のページとしてエクスポートされていると思います使用されている。最初の部分は上書きされています (これは単なる推測です!) 全体jpanelを表示するには、スクロールする必要があります... パネル全体 (上から下まで) を複数のページにエクスポートする方法A4ページ。助けてください。前もって感謝します。

注:私は netbeans を使用して GUI を開発しています。私itextpdf-5.4.1は Java プログラミングの初心者です。

4

1 に答える 1

0

PrintWriterを閉じて、addNotify、validate を追加してみる必要があります

jp.addNotify();
jp.setSize();
jp.validate();
于 2013-04-29T12:04:18.630 に答える