使用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