skillup

技術ブログ

Java

JavaでのPDF出力

投稿日:2015年10月28日 更新日:

JavaでのPDFファイルをダウンロードしたいと要望があって社内アプリの開発をしていましたが、思った以上にバグがでてかなり長期戦になりました。

やりたいことは

  • ボタンを押すとファイルのダウンロードが始まる
  • ファイル名は日本語
  • PDFファイルには日本語の表示
  • 帳票なので表を表示したい
  • 使うものはすべてフリーのもの

以上です。

というか現段階でまだできていないんですけどね・・・

一応つまづいたところなどを。

ファイルの日本語名

かなり大変でした。

理屈自体もよくわかってません(汗)

とりあえずコードを書いておきます。iTextというPDFのライブラリを使っています。

HTTPレスポンスヘッダの[Content-Disposition]について、Safariでの日本語文字化け対策など。

 

byte変換

「Java」Base64 エンコード デコード

これで進めてきたのですが、肝心の帳票に出力する部分で日本語フォントが使えないことが発覚。

ここの対応で行けるようなのですが私は駄目でした・・・(汗)

JavaでPDFを作成

比較的新しいライブラリということでApachePDFBoxというものを使い始めましたが、日本語表記やテーブル表記も難しく依存関係でもエラーがでました。

一応下記にそれぞれの対処したものとリンクを書いておきます。

apachePDFbox自体の使い方

Java ライブラリ Apache PDFBox で PDF を操作しよう

Apache PDFBox

テーブル文字列
Creating tables with PDFBox

ApachPDFBoxの依存関係
https://pdfbox.apache.org/1.8/dependencies.html

テーブルのサンプルなど
githubより
https://github.com/eduardohl/Paginated-PDFBox-Table-Sample

いろいろ調べましたが検索スキルなどがいまだに未熟ですね・・・・

なんとか公式ページを手探りで読んだり、上司にきいたりしながらエラーは消えましたが、いまだゴールにはたどり着けていません(汗)

うまくいったらまた書きます・・・

 

-Java
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

配列の参照の仕方

変数が存在しているにもかかわらず値が入っていないときは、プログラミングではNULLという表記をします。(ちなみに空白が入っているのとは違います。) これはプログラマにとってはほぼ常識的な内容なのですが …

no image

Fileのアップロード

業務でCSVのアップロードを行っていますが、ファイルになりますと当然文字列ではなく、バイナリ形式のデータが必要になります。 アップロード自体の処理を書いていなかったので、その扱い方についてちょっと書い …

no image

Streamについて

Java8で導入されたStreamですが、名前はしっていたものの、使い方がわからず放置していました。 これを機に調べたのですが、コレクションフレームワークの拡張のようですね。 特徴としては以下のような …

no image

Optionalについて その2

JavaEEブログなはずなのに11月はcakeのことばかり書いていて、Javaのことすら書いていないですね(汗) 今日はOptionalについて書きます。 いまいち使い方がわからなかったんですが、自分 …

no image

JSPでのカスタムタグ

前回のインク―ドですが、文字列以上の情報を渡すことはできませんでした。 いろいろ調べたり、上司に聞いてみるとカスタムタグという独自のタグを作る機能があるとのことでさっそく調査。 Contents1 カ …