Webアプリ開発エンジニアのための技術情報サイト「テックスコア」

3. 複数ページ文書の生成

これまで紹介した方法で、様々な文書を生成することが可能ですが、ここでは複数ページ文書を生成する方法について説明します。

複数ページ文書を生成するには、各ページごとにPageクラス、PDFGraphicsクラス、Outputクラス、Streamクラスのインスタンスが必要です。以下に2ページの文書を生成するサンプルを示します。

・・・
(略)
Page page1 = new Page();
Page page2 = new Page();
pages.addKid(page1);
pages.addKid(page2);
pdf.add(page1);
pdf.add(page2);
//フォントインスタンスの生成
FontType0 font = new Japan1Font();
font.setName("mincho");
font.setBaseFont("Heisei-Mincho");
//Resourcesインスタンスの生成
Resources resources = new Resources();
page1.setResources(resources);
page2.setResources(resources);
resources.addFont(font);
//PDFGraphicsインスタンスの生成とデータ出力先
PDFGraphics pg1 = new PDFGraphics();
PDFGraphics pg2 = new PDFGraphics();
Output output1 = new Output(1,3,new ByteArrayOutputStream());
Output output2 = new Output(1,3,new ByteArrayOutputStream());
pg1.setOutputStream(output1);
pg2.setOutputStream(output2);
//文字の表示
pg1.setPDFFont(font);
pg2.setPDFFont(font);
pg1.drawString("PAGE1:ハロー JavaPDF ワールド !",150,500);
pg2.drawString("PAGE2:ハロー JavaPDF ワールド !",150,500);
pg1.endDrawing();
pg2.endDrawing();
Stream stream1 = new Stream();
Stream stream2 = new Stream();
stream1.setStream((ByteArrayOutputStream)output1.getOutputStream());
stream2.setStream((ByteArrayOutputStream)output2.getOutputStream());
page1.addContent(stream1);
page2.addContent(stream2);
(略)
・・・

■生成されるPDFファイル(SomePagesSample.pdf

(実習課題)

以下の条件を満たすプログラムを作成しなさい。

  • 30行以上の文字列が書かれたテキストファイルを用意する。
  • 1ページ目は用意したテキストファイルの1〜10行目まで、2ページ目は11〜20行目まで、3ページ目は21〜30行目までというようなPDFファイルを生成する
  • テキストファイルはプログラムの引き数で指定すること
  • 文字の配置はどのようなものでもよい

解答例はこちら



前のページへ TECHSCOREのTOPページへ  
TECHSCORE PR
PR
PR
PR
PR
PR

techscore(トップページへ)
TECHSCORE書店
TECHSCOREトップページJavaSQLXMLリッチクライアントモデリングセマンティックWebその他技術Tuigwaa