• 締切済み

iTextでPDFを表示させたら日本語が文字化けしてしまう

こんにちは。いつもお世話になっております。 皆さんのおかげで何とか入力した情報をDBに格納し、閲覧・編集までは出来るようになりました。 ありがとうございます。 さて、今回はそのデータをPDF化するための作業を現在行っているのですが、どうしても解決出来ないためお力をお貸しください。 下記ページを参考にiTextを利用してPDFの出力を行おうと試みています。 http://jamy.to/itext/ なんとかPDFファイルまでは出力されるようになりましたが、肝心の中身が文字化けして読めません。 具体的には「がちょ~ん」が「???????`??」と表示されてしまいます。(英数字は正常に表示されます) ソースは上記ページにあったものをそのままコピペしただけなので、何が悪いのかわかりません。 文字コード部分を色々変化させて見たものの、成果無しでした。 DBの内容を整形してPDF化したいのですが…。 宜しくお願い致します。 使用環境 Windows 2000Server Eclipce2.1.3 Tomcat5.0.19 J2sdk1.4.2_11 itext-1.4.3.jar iTextAsian.jar

  • ao108
  • お礼率69% (25/36)
  • Java
  • 回答数2
  • ありがとう数1

みんなの回答

  • bell_xxx
  • ベストアンサー率34% (22/63)
回答No.2

No1.です。すいません、もう適用していたんですね。 iTextAsianはパスを通していますか? あとJSPファイルの初めに <%@ page contentType="text/html;charset=Shift_JIS" %> を追加してみてはどうでしょう。

ao108
質問者

お礼

回答ありがとうございます。 iTextAsianに関してはitext-1.4.3と同様環境変数、プロジェクトのビルドパス、は記載してあります。 また別に参考にしたHP(下記ページ)には記載されていなかったのですが、setclasspath.batno set CLASSPATHに2つのjarファイルのパスを追加しないとPDFの表示もされませんでした。 http://codezine.jp/a/articleprint.aspx?aid=84 コンテントタイプを追加すると The server encountered an internal error () that prevented it from fulfilling this request. と表示され、エラーとなってしまいます(´・ω・`)

ao108
質問者

補足

setclasspath.batのset CLASSPATHに ですorz

  • bell_xxx
  • ベストアンサー率34% (22/63)
回答No.1

日本語を表示するためには、iTextのほかにiTextAsianをいれれば出来たはずですよ。

参考URL:
http://itext.sourceforge.net/downloads/iTextAsian.jar

関連するQ&A

  • itext 作成したPDFを縮小して出力する

    お世話になってます。 現在itextを利用したPDF出力を行っています。 そこで、問題になっているのが、 パンチなどをしたときに 帳票部分に穴がしまう為、 左側の余白をあけることができないか? と考えていますが、方法が分からず上手くいってません。 1つのPDFファイルとしてdocumentをpdfwriterを使って 作り上げています。 1つのPDFとしてきちっと作り上げてしまっている為 それに対してページ全体の縮小をして出力できないか?と考えています。 ぐぐった結果だと、 一度作成したPDFをサーバーに保存 それをPdfReaderクラスを使い、 テンプレートとして読み込み 新しいドキュメントクラスに貼り付け としています。 ただそのやり方だと性能などが劣化してしまう恐れが あるので他の方法で 一度の処理で(pdfwriter⇒documentクラス修正⇒出力) 出力処理ができないか?と考えています。 ちなみにdocumentの余白設定などでは修正はしたくありません。 (document内の要素の位置を全て見直す必要がある為) あくまで縮小出力を行いたいと考えています。 つたない日本語ですが・・・ ご存知の方、ご教授お願いします。

  • ライブPDFプリンタ 日本語が表示できません

    Wordで作成した文章をPDFファイルにするために「ライブPDFプリンタ」を使用しています. 印刷から出力後,プレビュー画面では正常に表示されますが, 保存したPDFファイルを見てみると日本語の部分が「・」などに変わってしまいます.英数字や罫線は正しく表示されています. 以前使っていたときは日本語部分も正常に表示されていたのですが 新しいバージョンを入れ直したらこのようになってしまいました. どなたか原因の分かる方がいらっしゃったら教えてください.

  • pdfファイルが表示されない

    自作ホームページに挿入したpdfファイル(最近作ったファイル)が表示されなくて困っています。 Windows7でホームページビルダー16を使っています。 ブラウザーで <Not Found! ブラウザで再読み込み又は再起動して云々・・>と出るので、そのとおり行っても同じです。 pdfファイルはパソコン内の同じファイル格納場所に格納されています。 ブラウザーでクリックすると3ヶ月ほど前に作ったファイルは表示されるのに、最近作ったものは表示されません。 念のため、表示されるファイルと表示されないもののプロパティを見比べましたが全く同じです。 タイトル:小文字英数字.pdf、プロトコル:Hyper Text Transfer Protocol、種類:Adobe Acrobat Reader、アドレス:http://ホームページアドレス.タイトル英数小文字.pdf となっています。 対処方法を教えていただければ助かります。

  • itextの日本語のエラー(バージョンアップ)

    itext-1.3.jarからitextpdf-5.4.0.jarにjavaのプログラムを 移行していますが、日本語が表示出来なくエラーになります。 解決策をお教えください。 インタネットで調べて、 iText(PDFライブラリ)の新しいバージョンで日本語がトラブル件で iTextAsian.jarを解凍、comフォルダの下にあるlowagieフォルダを itextpdfにリネーム、iTextAsian.jarの再圧縮 してみましたが解決出来ません  下記にソースコードが有ります import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; //日本語 //iTextAsian.jar //iTextAsianCmaps.jar //itextpdf-5.4.0.jar エラーになる //import com.itextpdf.text.Document; //import com.itextpdf.text.DocumentException; //import com.itextpdf.text.Font; //import com.itextpdf.text.PageSize; //import com.itextpdf.text.Paragraph; //import com.itextpdf.text.pdf.BaseFont; //import com.itextpdf.text.pdf.PdfWriter; //itext-1.3.jar OK import com.lowagie.text.Document; import com.lowagie.text.DocumentException; import com.lowagie.text.Font; import com.lowagie.text.PageSize; import com.lowagie.text.Paragraph; import com.lowagie.text.pdf.BaseFont; import com.lowagie.text.pdf.PdfWriter; import java.io.ByteArrayOutputStream; public class test12 extends HttpServlet { private static final long serialVersionUID = 1L; public test() { super(); } public static void samplepdf(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ByteArrayOutputStream buffer = new ByteArrayOutputStream(); Document document = new Document(PageSize.A4); PdfWriter pdfwriter = null; try { pdfwriter = PdfWriter.getInstance(document, buffer); } catch (DocumentException e) { // TODO 自動生成された catch ブロック e.printStackTrace(); } document.open(); BaseFont bf = null; try { bf = BaseFont.createFont("HeiseiKakuGo-W5","UniJIS-UCS2-H",BaseFont.EMBEDDED); Font font = new Font(bf, 12); document.add(new Paragraph("ABCD漢字",font)); } catch (DocumentException e) { // TODO 自動生成された catch ブロック e.printStackTrace(); } document.close(); response.setContentType("application/pdf"); response.setContentLength(buffer.size()); ServletOutputStream output = response.getOutputStream(); output.write(buffer.toByteArray()); output.close(); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { samplepdf(request,response); } }

  • 日本語だけ文字化け

    Solaris上で、Perl(5.005_03)を用い、DB(Oracle10.2.0)のデータを抽出しブラウザで表示させた際に、日本語のみが??????という感じに、半角の"?"で表示されてしまいます。 Solaris上で、cgiファイルを標準出力したり、Perlのデバッガで表示させると問題なく日本語表示されます。また、ブラウザでもDBから抽出した文字以外の日本語は問題なく表示されます。加えて、OUT関数を用いても、やはりDBから抽出した値のみ?表記になってしまいます。 下記に利用したCGIを書き出してみます。(DB接続以降の記述のみ) ------------------ここから--------------------- my $dbh = DBI->connect($datasrc, $username, $password) || die DBI::errstr; my $sql = "SELECT AAA FROM XXXXX"; my $sth = $dbh->prepare($sql) || die $dbh->errstr; $sth->execute || die $dbh->errstr; print "Content-type: text/html\n\n"; print "<HTML>\n<HEAD>\n"; print "<TITLE>DBテスト</TITLE>\n"; print "<meta http-equiv=Content-Type content=text/html; charset=Shift_JIS>\n"; print "</HEAD>\n<BODY>\n"; print "DB接続テスト<P>\n"; # display results my @results; my $count; while($count < 2) { @results = $sth->fetchrow; print "あああ"; print "@results\n<P>"; print ,$count++,"行目\n"; } $sth->finish; $dbh->disconnect; print "\n</BODY>\n</HTML>\n"; ------------------ここまで--------------------- ブラウザ表示の結果は、 DB接続テスト ???????? ???????? となってしまいます。"DB接続テスト"は正常に表示されて、print "@results\n<P>";が????に置換わり、"行目\n"が非出力となってしまいます。DB(AAA列)の値が数字や英数は問題なくブラウザ表示されます。 日本語全てが一律文字が置き換わるのであれば、文字コードの問題だと疑うのですが、SELECT文の日本語のみが、?というのはどうしてなのかがわかりません。また、Solaris上でのデバッガーや標準出力は問題なく、ブラウザやOUT関数でファイルに書き出すと、?になるのもわかりません。 もし、ご存知の方がいらっしゃいましたら、教えてくださいm(_ _)m

  • 文字化け解消法を教えてください

    eclipseから、tomcatを起動し、ブラウザに表示・・・させたいのですが、文字化けしてしまいます(ひらがな・カタカナ・漢字)英数字は大丈夫です・・・ 編集 ⇒ エンコード と作業しましたが、どうもうまくいきません・・・教えてください。 ちなみに、OSはwin2000ですm(__)m

  • PDFファイルが、フォトショップで文字化けします。

    PDFファイルが、フォトショップで文字化けします。 どなたが、教えてください。 win2000でフォトショップ5.0を使っています。 WORD2000の文書を、クセロ2.0でPDFファイルにしました。 それを、フォトショップで、 ファイル→自動処理→複数ページPDFからPDSへの変換→ 変換元のPDFファイルを選び、ページ範囲はすべて 出力オフションは解像度600、RGBカラー、アンチエイリアスはチェック済み。 で、表示されると、文字化けしています。 クセロでは、文字化けを防ぐために、「全てのフォントを埋め込む」にチェックを入れています。 ファイルから開く、や、指定形式で開くでも同じことがおこります。 なお、アクロバットリーダーでは、文字化けせず、綺麗に見えます。 フォトショップでPSDファイルにして、印刷所に持っていきたいと思っています。 どうか、教えてください。

  • PDFの文字データを外す方法

    早速質問させてください。 文字、写真が記載されている書籍をPDFにしました。 そのPDFには書籍のテキストデータが入ってしまいました。 (OCRというのかな?PDFの文字をコピぺでテキスト貼付けが出来るようになっている) このPDFからテキストデータを抜く方法はないでしょうか。 ちなみに書籍は既に手元にございません。 50ページ~150ページくらいのPDFファイルが 60ファイルくらいあるので、 なるべく簡単な方法をご教授いただきたく存じます。 宜しくお願いいたします。

  • JSPの表示の際に日本語が文字化け

    こんにちは。 現在Javaで書かれたNutchという検索エンジンプログラムをWindowsXPとFedore core 6、それぞれで動作実験しております。 大部分が正常に動作しているのですが、何故かcache.jspで、インデックス化したウェブサイトのキャッシュを表示する際に問題が発生してしまいます。 ■問題の詳細 WindowsXPをサーバとして別のWindowsXPからインターネットを通して表示しますと、Shift_JISで書かれたウェブサイトのキャッシュだけが正常に表示され、EUC-JPやUTF-8で書かれたウェブサイトのキャッシュは文字化けしてしまいます。 またFedora core 6をサーバとしてWindowsXPから表示しますと、UTF-8で書かれたウェブサイトのキャッシュだけが正常に表示され、EUC-JPやShift_JISで書かれたウェブサイトのキャッシュは文字化けしてしまいます。 なお2つのサーバ上にあるNutchは同じバージョンで、クライアントとして使用したWindowsXPも同じものです。クライアント側でのプラウザにはIE6・IE7・Opera・Firefox・NN等を使用しました。 これまで、Apache・Tomcat・Java-SDK・Nutchのバージョンを変えたり設定を色々変え実験しました。またcache.jspの内容を書き換えて実験しましたが、どれも失敗に終わってしまいました。 しかしhttp://www.mozdex.com/こちらのサイトでは、言語・文字コードに関わらず、正常にキャッシュを表示しております。 現在OSを変えるべきかどうか検討しております。 どのような意見でも構いませんので、よろしくお願いいたします。

  • [Ghostscript&Distiller] PDFからテキストをコピーすると文字化け。

    私が使用するあるアプリケーションは、処理結果を印刷出力する事しか出来ないため、他のアプリケーションでの再編集が出来ず困っています。そこで、印刷内容をPDF化して、Acrobat Readerでテキストデータを得ようと考えました。 Windows2000の環境にGhostscript7.05とDistillerをインストールし、PDFを作成する事が出来ました。特段、日本語化の為の日本語フォントのインストール等はしておりませんが、半角英数字も日本語もPDFには再現されています。 しかし、これをAcrobat Readerで開いてテキストのコピー、他のアプリケーション(テキストエディタやEXCEL)に貼り付けると、文字が化け化けになってしまいます。 GhostscriptでPDFを作成すると、表示そのものは再現できても元々の文字コードは失われてしまうという事でしょうか?それとも私のセットアップ(Ghostscript7.05とDistiller)に何らか問題があるという事でしょうか?