iTextを使ってPDF作成 - 注釈 - [プログラミング]
PDFデータには、注釈を付けることが出来ます。
(PDFファイルを作成するためのJava用ライブラリ)「iText」にも、注釈を付けるクラスが用意されています。
import java.io.*; import com.lowagie.text.*; import com.lowagie.text.pdf.*; public class Sample { static public void main(String[] args) { BufferedReader in = null; final Document doc = new Document(); try { final PdfWriter writer = PdfWriter.getInstance(doc, new FileOutputStream("sample.pdf")); doc.open(); PdfAnnotation a = PdfAnnotation.createText( writer, new Rectangle(100, 100, 200, 200), "タイトル", "内容", true, null); writer.addAnnotation(a); } catch (IOException e) { e.printStackTrace(); } catch (DocumentException e) { e.printStackTrace(); } doc.close(); } }
PdfAnnotation#createText()
の6番目の引数はアイコンの指定で、次のものが指定できます。
- "Comment"
- "Help"
- "Insert"
- "Key"
- "NewParagraph"
- "Note"
- "Paragraph"
nullを指定したり、上記以外のものを指定すると、"Note"になります。
本文の位置に合わせて注釈を出力したい場合は、振り仮名の場合と同様にタグ機能を利用して座標を取得することになりそうです。
ただ、本文の近くに注釈を出力すると、アイコンが鬱陶しいので、PdfAnnotation#createText()
の5番目の引数をfalseにして、
a.setFlags(PdfAnnotation.FLAGS_TOGGLENOVIEW | PdfAnnotation.FLAGS_NOVIEW);
とするといいかも。
マウスカーソルを注釈のある場所へ移動すると、注釈が表示されるようになります。
ここで1つ不思議な現象が。注釈に指定する座標を new Rectangle(x1, y1, x2, y2)
としたとして、用紙が縦なら x1 < x2, y1 < y2
、用紙が横なら x1 > x2, y1 > y2
となるように指定しないと、注釈の出力位置がずれます。
今日の二冊 | |
|
2007-07-28 10:09
nice!(0)
コメント(0)
トラックバック(0)
コメント 0