pdfbox を使用して、PDF (または PDF バイト []) を画像バイト [] に変換することは可能ですか? 私はいくつかの例をオンラインで調べましたが、変換されたファイルをファイルシステムに直接書き込む方法、またはそれを Java AWT オブジェクトに変換する方法を説明しているものだけが見つかりました。
画像ファイルをファイルシステムに書き込み、byte[] に読み込んでから削除するという IO を発生させたくありません。
これは私ができることです:
String destinationImageFormat = "jpg";
boolean success = false;
InputStream is = getClass().getClassLoader().getResourceAsStream("example.pdf");
PDDocument pdf = PDDocument.load( is, true );
int resolution = 256;
String password = "";
String outputPrefix = "myImageFile";
PDFImageWriter imageWriter = new PDFImageWriter();
success = imageWriter.writeImage(pdf,
destinationImageFormat,
password,
1,
2,
outputPrefix,
BufferedImage.TYPE_INT_RGB,
resolution);
これと同様に:
InputStream is = getClass().getClassLoader().getResourceAsStream("example.pdf");
PDDocument pdf = PDDocument.load( is, true );
List<PDPage> pages = pdf.getDocumentCatalog().getAllPages();
for ( PDPage page : pages )
{
BufferedImage image = page.convertToImage();
}
明確でないところは、BufferedImage を byte[] に変換する方法です。これが imageWriter.writeImage() でファイル出力ストリームに変換されることは知っていますが、API がどのように機能するかはわかりません。