2012-04-29 16 views
0

私のパネルの高さは1600です。A4フォーマットの高さは842です。このパネルをPDFに2ページでエクスポートするにはどうすればいいですか?私は2枚のグラフィックスに半分にこのパネルを分割して、上の最初のページに追加する方法や、その後、document.newPage();を呼び出し、第2のグラフィックを使用すると、一言で言えば、iTextのを使用する予定と仮定すると、2ページJPanelをpdfに変換する方法

+1

これはあなたの以前のスレッドに非常に似ています:[Javaスイングパネルを高品質のイメージに変換する方法](http://stackoverflow.com/questions/10366660/how-to-convert-java-swing-パネルから画質へのイメージ) –

+0

いいえ、そこに私はパネルをイメージにエクスポートしたいと思います。今私はpdf – hudi

答えて

1

に追加

ます通常のJava印刷の場合と同様に、java.awt.print.Pageableを実装する必要があります。あなたの例では、それはPrintablesになる2ページを持っています。通常、印刷可能な方法で

print(Graphics graphics, PageFormat pageFormat, int pageIndex) 

あなたはページ番号に従って入力グラフィックを翻訳します。例えばあなたの例でpageIndex * 842で翻訳してください。そこにマイナス記号があるかもしれません - 私の経験では、右に方向を得るために50:50のチャンスがあります。 :-)心配するマージンもあるかもしれません。

次に、iText in Action(第2版)を購入し、Swingから一般的なPDFを作成する方法については、485ページを参照してください。

各ページにループします。

for (int pageIndex=0; pageIndex< pageable.getNumberOfPages(); pageIndex++) { 
    Graphics2D g2d = contentByte.createGraphics(width, height, fontMapper); 
    Printable printable = pageable.getPrintable(pageIndex); 
    PageFormat pageFormat = pageable.getPageFormat(pageIndex); 
    int pageStatus = printable.print(g2d, pageFormat, pageIndex); 
    if (pageStatus != Printable.PAGE_EXISTS) 
     break; // something screwey happenned 
    g2d.dispose(); 
} 

あなたが推測しているように、私はこれをやっているばかりであり、数日でより完全なコードのブログを投稿するかもしれません。だから、お楽しみください。

+0

hm良い例にパネルをエクスポートしたいと思います。 bwtにはこれをもっと良くすることができる輸出用の別の図書館がありますか? – hudi