PDFページを画像(PNG、JPEG/JPG、またはGIF)に変換します。ページ全体のサイズで変換します。
Javaを使用してこれをどのように行うことができますか?これを達成するために利用できるライブラリは何ですか?
PDFレンダラーが必要です。市場にはいくつかの良いもの(ICEPdf、pdfrenderer)がありますが、外部のツールに頼らなければなりません。無料のPDFレンダラーも埋め込みフォントをレンダリングできないため、サムネイル(最終的に必要なもの)の作成にのみ適しています。
私のお気に入りの外部ツールはGhostscriptです。これは、単一のコマンドライン呼び出しでPDFを画像に変換できます。
これは、Postscript(およびPDF?)ファイルをbmp for usに変換します。これは、ニーズに合わせて変更するためのガイドとして(gsが機能するにはenv varsが必要です!):
pushd
setlocal
Set BIN_DIR=C:\Program Files\IKOffice_ACME\bin
Set GS=C:\Program Files\IKOffice_ACME\gs
Set GS_DLL=%GS%\gs8.54\bin\gsdll32.dll
Set GS_LIB=%GS%\gs8.54\lib;%GS%\gs8.54\Resource;%GS%\fonts
Set Path=%Path%;%GS%\gs8.54\bin
Set Path=%Path%;%GS%\gs8.54\lib
call "%GS%\gs8.54\bin\gswin32c.exe" -q -dSAFER -dNOPAUSE -dBATCH -sDEVICE#bmpmono -r600x600 -sOutputFile#%2 -f %1
endlocal
popd
PDATE: pdfboxはフォントを埋め込むことができるようになったため、Ghostscriptは不要になりました。
Ghost4Jライブラリ(http://ghost4j.sourceforge.net)では、バージョン0.4.0以降、SimpleRendererを使用して数行のコードでジョブを実行できます。
Load PDFまたはPSファイル(そのためにPSDocumentクラスを使用):
PDFDocument document = new PDFDocument();
document.load(new File("input.pdf"));
レンダラーを作成する
SimpleRenderer renderer = new SimpleRenderer();
// set resolution (in DPI)
renderer.setResolution(300);
レンダリング
List<Image> images = renderer.render(document);
次に、画像オブジェクトで必要な処理を実行できます。たとえば、次のようにPNGとして書き込むことができます。
for (int i = 0; i < images.size(); i++) {
ImageIO.write((RenderedImage) images.get(i), "png", new File((i + 1) + ".png"));
}
注:Ghost4JはネイティブGhostscript C APIを使用するため、Ghostscriptをボックスにインストールする必要があります。
私はそれがあなたを助けることを願っています:)
Apache PDF Box PDFをjpg、bmp、wbmp、png、gifに変換できます。
ライブラリには、これを行うための PDFToImage と呼ばれるコマンドラインユーティリティも付属しています。
ソースコードをダウンロードしてPDFToImageクラスを見ると、PDF Boxを使用して独自のPDFを画像に変換する方法を見つけることができるはずですJava =コード。
記事を見てください:
1) PdftoImage-Convert PDF PdfRendererライブラリを使用して画像に 、直接リンク ソースコード
2) Java:PDFを生成し、画像としてプレビュー– iTextおよびPDFレンダラー
jPDFImagesは無料ではありませんが、PDFページをJPEG、TIFFまたはPNG形式の画像に変換する商用ライブラリです。出力画像サイズはカスタマイズ可能です。
GPLに問題がない場合は、jPodRenderer(SourceForge)をさらに確認してください。