[英]Convert pdf to byte[] and vice versa with pdfbox
我已經閱讀了文檔和示例,但我很難將它們放在一起。 我只是試圖獲取一個測試pdf文件,然后將其轉換為字節數組,然后獲取字節數組並將其轉換回pdf文件,然后將pdf文件創建到磁盤上。
它可能沒什么用,但這是我到目前為止所得到的:
package javaapplication1;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import org.apache.pdfbox.cos.COSStream;
import org.apache.pdfbox.exceptions.COSVisitorException;
import org.apache.pdfbox.pdmodel.PDDocument;
public class JavaApplication1 {
private COSStream stream;
public static void main(String[] args) {
try {
PDDocument in = PDDocument.load("C:\\Users\\Me\\Desktop\\JavaApplication1\\in\\Test.pdf");
byte[] pdfbytes = toByteArray(in);
PDDocument out;
} catch (Exception e) {
System.out.println(e);
}
}
private static byte[] toByteArray(PDDocument pdDoc) throws IOException, COSVisitorException {
ByteArrayOutputStream out = new ByteArrayOutputStream();
try {
pdDoc.save(out);
pdDoc.close();
} catch (Exception ex) {
System.out.println(ex);
}
return out.toByteArray();
}
public void PDStream(PDDocument document) {
stream = new COSStream(document.getDocument().getScratchFile());
}
}
您可以使用Apache commons ,這在任何Java項目IMO中都是必不可少的。
然后你可以使用FileUtils的readFileToByteArray(File file)
和writeByteArrayToFile(File file, byte[] data)
。
(這里是commons-io,這是FileUtils的地方: http : //commons.apache.org/proper/commons-io/download_io.cgi )
例如,我在這里試過這個並且效果很好。
try {
File file = new File("/example/path/contract.pdf");
byte[] array = FileUtils.readFileToByteArray(file);
FileUtils.writeByteArrayToFile(new File("/example/path/contract2.pdf"), array);
} catch (IOException e) {
e.printStackTrace();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.