使用 pdfbox,是否可以将 PDF(或 PDF 字节 [])转换为图像字节 []?我在网上浏览了几个示例,唯一能找到的示例描述了如何将转换后的文件直接写入文件系统或将其转换为 Java AWT 对象。
我宁愿不招致将图像文件写入文件系统的 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 是如何工作的。