- PR -

PDF出力するには?

投稿者投稿内容
にんじん
会議室デビュー日: 2002/02/10
投稿数: 9
投稿日時: 2002-02-10 17:33
JSPを使用してPDF出力をしたいのですが
初心者なもので何をしたらいいのか全く分かりません。
必要なもの、またはサンプルソースなどがありましたら
教えていただけないでしょうか?
よろしくお願いします。
H2
ぬし
会議室デビュー日: 2001/09/06
投稿数: 586
お住まい・勤務地: 港
投稿日時: 2002-02-10 21:07
サンプルコードではないのですが、技術評論社の『Software Design 2002年1月号』ではJavaを使ってのPDF出力が特集されてました。

引用:

Software Design 2002年1月号 (ISSN 0916-6297) - 技術評論社
第二特集:PHP/JavaでまるごとPDF印刷 (Webアプリケーションの弱点解消)
4.Java/XMLで作る多機能PDFアプリケーション (pp166-183)



雑誌自体が手に入らないかもしれませんが・・・。
しょむ
ぬし
会議室デビュー日: 2001/09/06
投稿数: 430
投稿日時: 2002-02-10 23:40
JSPでPDFかぁ…。
JSP から出すとなると、バイナリができないので、テキストで書くことになるかな。

<%@page contentType="application/pdf" %>ではじめて、中身は
http://www.kobu.com/pdf/pdfxhand.htm
あたりを参考に、ですかねぇ。

---
# え?そういうことじゃない?FO?
# ん〜、まじめに PDF タグライブラリとかおもしろそう?もしかして?
kaho
会議室デビュー日: 2001/08/14
投稿数: 12
投稿日時: 2002-02-13 11:21
バイナリで出す場合、私はiTextというライブラリを使用しています。
ただしライセンスはGPLなのでプログラムに組み込む場合は気をつけた方が
よいかもしれません。
また日本語フォントの表示に関してはライブラリ内には用意されているものの
私はうまくフォント名を取得できずに書くことはできませんでした。

http://www.lowagie.com/iText/

内にサンプルコードなどがあります。
にんじん
会議室デビュー日: 2002/02/10
投稿数: 9
投稿日時: 2002-02-14 14:32
回答ありがとうございます。
なんとかサンプルを使用してPDF出力に成功しました。
しかし、日本語を出力させようとするとやはり文字化け
が起きてしまいます。
海外からライブラリを落としてきたのでしょうがないとは
思いますが、どなたか解決方法を教えて頂けないでしょうか?
よろしくお願いします。
kaho
会議室デビュー日: 2001/08/14
投稿数: 12
投稿日時: 2002-02-16 12:07
ちょっと状況がわかりませんが、iTextを使用されたのだと判断してお答えします。
その後私も日本語の出力についてドキュメントを読みましたが、平成角ゴシックと
平成明朝の2フォンとは日本語出力ができるようです。
以下にあまり整理してありませんが、サンプルを書いておきます。

import com.lowagie.text.*;
import com.lowagie.text.pdf.*;
import java.io.*;

public class JpFontTest {

public static BaseFont sharedFont = getDefaultFont();

/** 使用可能な日本語フォントを取得する */
public static BaseFont getDefaultFont() {
try {
return BaseFont.createFont( "HeiseiKakuGo-W5", "UniJIS-UCS2-HW-H",
BaseFont.EMBEDDED );
} catch ( Exception e ) {
e.printStackTrace();
return null;
}
}

/** ドキュメント内に文字を書く */
public static void writeText( PdfContentByte content, String text, int x, int y, float size ) {
content.beginText();
content.moveText( x, y );
content.setFontAndSize( sharedFont, size );
content.showText( text );
content.endText();
}

public static void main( String[] arg ) {
String filename = "pdftest.pdf";
if ( arg.length > 0 ) filename = arg[ 0 ];
try {
FileOutputStream out = new FileOutputStream( new File( filename ) );
Document pdfDoc = new Document();
PdfWriter writer = PdfWriter.getInstance( pdfDoc, out );
PdfContentByte content = writer.getDirectContent();
pdfDoc.open(); // PDFドキュメントの作成を開始する
pdfDoc.add( new Paragraph( "iText Example with Japanese Font" ) );
writeText( content, "このプログラムはBruno LowagieとPaulo SoaresによるiTextライブラリを使用しています", 100, 500, 10 );
writeText( content, "iTextはGPLの元で配布されています", 100, 400, 20 );
writeText( content, "詳しい情報はhttp://www.lowagie.com/iText/を参照してください", 100, 300, 15 );
pdfDoc.close(); // PDFドキュメントの作成を終了する
} catch ( Exception e ) {
e.printStackTrace();
}
}
}
しょむ
ぬし
会議室デビュー日: 2001/09/06
投稿数: 430
投稿日時: 2002-02-17 01:32
JSP で、というのとはちがいますが、Java で作る方法。

http://jpfop.sourceforge.net/index_jp.html
にんじん
会議室デビュー日: 2002/02/10
投稿数: 9
投稿日時: 2002-02-18 13:10
kahoさんありがとうございます。
記述していただいたソースで日本語を出力できました。
しかし、開発で使用するということになるとリファレンスが
英語であるなど、若干使いづらい部分がありますね。
日本語版みたいなものはないんですかね???
なんならシェアウェアでもしょうがないかも・・・

スキルアップ/キャリアアップ(JOB@IT)