2013-06-03 106 views
1

我試圖從PDDocument中檢索FileInputStream實例,但不將PDDocument保存到文件系統。Java PDFBox,如何從PDDocument獲取文件對象

PDDocument doc= new PDDocument(); 
...  
doc.save("D:\\document.pdf"); 
File f= new File("D:\\document.pdf"); 

是否有PDFBox返回從現有PDDocumentFileInputStream任何方法?

回答

0

如果你首先創建的OutputStream

PDDocument doc= new PDDocument(); 
File f= new File("D:\\document.pdf"); 
FileOutputStream fOut = new FileOutputStream(f); 
doc.save(fOut); 

看看這個 http://pdfbox.apache.org/apidocs/org/apache/pdfbox/pdmodel/PDDocument.html#save(java.io.OutputStream)

+0

的問題是,我不希望我的文件系統上創建一個文件,我想把這個PDF文件直接在露天倉庫......你有什麼我怎麼能做到這一點? –

+0

@MilosGavrilov和做這個傳輸的戶外支持什麼協議?因爲只要你得到輸出流寫信給你很好去 – fGo

+0

這不會回答這個問題,因爲它從計算機上的文件獲取流。 –

11

我解決了它:

PDDocument doc=new PDDocument();   
PDStream ps=new PDStream(doc); 
InputStream is=ps.createInputStream(); 
0

我解決它以這種方式(它的創建但是在臨時文件目錄中):

final PDDocument document = new PDDocument(); 
final File file = File.createTempFile(filename, ".pdf"); 
document.save(file); 

,如果你需要

document.close();