スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[Java][PDFBox]Apache PDFBoxでPDFからイメージ生成

JavaでPDFを操作するためのライブラリは…あまり数がありませんが
個人的に一番オススメなのが、Apache PDFBoxです。

■Apache PDFBox - Java PDF Library
http://pdfbox.apache.org/

実装の感じはPOIとも似ているし、扱いやすい。

以前1.4で試していたころ、日本語PDFをイメージに変換すると
Exceptionが出たのですが。この度1.5.0で試してみたら、
「結構」うまくいきました。

#「結構」というのがミソで、相変わらず警告でまくりです。
# 埋め込まれていないフォント、一部レイアウトや縦書きなどが再現出来ないようです。


試したのは、PDFからイメージを作るPDFToImage機能です。

jar単体でも実行できるので、以下を参考にお試しアレ~

■PDFToImage
http://pdfbox.apache.org/commandlineutilities/PDFToImage.html

-コマンド
java -jar pdfbox-app-x.y.z.jar PDFToImage [OPTIONS]


オプションは指定しなくても、基本的な出力は出来るのでお気軽にどぞ。
たぶん警告がバンバン出ますが、それなりにイメージ変換できます。

ライブラリとして使う場合は。。。

①pdfをパースしてPDDocumentを取得
②PDDocumentからPDPageを取得
③PDPageのconvertToImageでBufferedImage取得

という流れです。コード無しでスミマセン…

そんなわけで、私はPDFBoxを応援します。頑張れコミッター
スポンサーサイト

theme : ソフトウェア
genre : コンピュータ

[Java]書式指定で基数指示子「0x」付きの16進表示

10進を16進にするだけならば簡単なのですが、
今回は「0x0000」と基数指示子付きの4桁で表示したかったのです。

でもでも基本的なところだから、いいAPIがあるんだろうと思って調べました。

まずはよく知られているjava.lang.Integerを使う例です。

Integer.toHexString(666);


戻り値は

29a


これだと不十分です。。。

次は今回の目的である書式指定を行う例です。使うのはjava.util.Formatter

Formatter formatter = new Formatter();
formatter.format("%#06x", 666);
// Formatter出力先のAppendableインスタンスを取得
// 引数なしコンストラクタの場合はStringBuilder
StringBuilder output = (StringBuilder)formatter.out();


この場合outputの中身は

0x029a


となります。
よっしゃ、でけた。


書式指示子の説明

# :フラグ、基数指示子 (16進では0x)を出力
06:最小フィールド幅、6桁表示で足りない分を0で埋める(2桁分は0xということで、、ここ弱いかなぁ)
x :基数 16 の整数として書式設定

<Javadoc>
java.util.Formatter

自己紹介

煩悩即菩提

Name:煩悩即菩提


三流SEです。
開発は基本Javaです。
Androidアプリ作り隊。。

お絵かきを少々しとります。
こちらもぱっととしないのが悩みです。

bonnosokubodaiをフォローしてください

Pixivアカウント

カレンダー   
Recomend


ビデオニュース・ドットコム
検索フォーム
最新記事
最新コメント
月別アーカイブ
カテゴリ
最新トラックバック
リンク
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。