「PDFBox 1.0」の版間の差分

提供: 個人的記録
移動: 案内検索
(紙のサイズとおおよそのポイント)
(文字列/図形の描画)
53行目: 53行目:
 
図形や文字列のPDFのオペレータに対応するメソッドがある。<br>
 
図形や文字列のPDFのオペレータに対応するメソッドがある。<br>
 
streamは必ずcloseすること。closeしないと描画が行われない。
 
streamは必ずcloseすること。closeしないと描画が行われない。
 +
=== 文字列の出力 ===
 +
PDFでの文字列の出力は以下の手順で行う。
 +
<pre>
 +
PDPageContentStream stream = new PDPageContentStream(PDDocument, PDPage);
 +
stream.beginText()  //文字列出力の開始を通知
 +
stream.setFont(PDFont,フォントサイズ);  //フォントとサイズの指定。マルチバイト文字を出力する場合、対応するフォントの指定が必須。
 +
stream.moveTextPositionByAmount(横位置, 縦位置);    //文字列を出力する位置の指定。
 +
stream.drawString(文字列);              //文字列の出力
 +
stream.endText();              //文字列出力の終了を通知
 +
</pre>
 +
 
=== フォントの指定 ===
 
=== フォントの指定 ===
  

2014年1月2日 (木) 14:13時点における版

Apache FoundationのPDF生成ライブラリ。
このページは1.8.3準拠で記述しています。
ライセンス

APL

本家サイト

http://pdfbox.apache.org/

Mavenでの導入

本家にもあるけど、今回はdependencyに以下を記述。

<dependency>
	<groupId>org.apache.pdfbox</groupId>
	<artifactId>pdfbox</artifactId>
	<version>1.8.3</version>
</dependency>

使い方

PDFページを追加する。

以下のコードで空白のページを追加することができる。
PDRectangleでページサイズを指定できるが、単位がポイントなのに注意(1ポイント=0.353mm)

PDDocument doc = new PDDocument();
PDRectangle rec = new PDRectangle(幅,高さ);
doc.addPage(new Page(rec));
doc.save("出力先.pdf");
doc.close();

紙のサイズとおおよそのポイント

紙サイズ変換表
サイズ mm表記 ポイント表記
A3 297×427 842×1191
A4 210×297 595×842
A5 148×210 420×595
B4 250×353 729×1032
B5 176×250 516×729
B6 125×176 363×516

文字列/図形の描画

PDFの文字列や図形はstreamで行う。streamはさまざまなオペレータの集合になっている。イメージ的にはdrawマクロみたいなもの。
streamはページに対し、以下のコードで生成する。

PDPageContentStream stream = new PDPageContentStream(PDDocument, PDPage)

図形や文字列のPDFのオペレータに対応するメソッドがある。
streamは必ずcloseすること。closeしないと描画が行われない。

文字列の出力

PDFでの文字列の出力は以下の手順で行う。

PDPageContentStream stream = new PDPageContentStream(PDDocument, PDPage);
stream.beginText()   //文字列出力の開始を通知
stream.setFont(PDFont,フォントサイズ);   //フォントとサイズの指定。マルチバイト文字を出力する場合、対応するフォントの指定が必須。
stream.moveTextPositionByAmount(横位置, 縦位置);    //文字列を出力する位置の指定。
stream.drawString(文字列);               //文字列の出力
stream.endText();              //文字列出力の終了を通知

フォントの指定

参考にしたサイト