使用pdfbox,是否可以将PDF(或PDF字节[])转换为图像字节[]?我已经浏览了几个在线的例子,我能找到的唯一例子描述了如何直接将转换后的文件写入文件系统或将其转换为Java AWT对象。pdfbox将pdf转换为图像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的工作原理。
感谢。这按预期工作。如果我有足够的声望,我会投你一票,但这是我第一次发布到StackOverflow。 – user2100746 2013-02-22 22:08:26
不客气,你应该能够将其标记为已接受。 – aditsu 2013-02-22 22:09:19
@ user2100746您应该将答案标记为已接受:) – Genjuro 2013-05-21 08:45:42