[英]Java PDFBox, how to get File object from PDDocument
我正在嘗試從PDDocument
檢索File
或InputStream
實例,而不將PDDocument
保存到文件系統。
PDDocument doc= new PDDocument();
...
doc.save("D:\\document.pdf");
File f= new File("D:\\document.pdf");
PDFBox
是否有任何方法可以從現有PDDocument
返回File
或InputStream
?
我解決了:
PDDocument doc=new PDDocument();
PDStream ps=new PDStream(doc);
InputStream is=ps.createInputStream();
我以這種方式解決它(它正在創建文件,但在臨時文件目錄中):
final PDDocument document = new PDDocument();
final File file = File.createTempFile(filename, ".pdf");
document.save(file);
如果你需要
document.close();
如果首先創建輸出流該怎么辦
PDDocument doc= new PDDocument();
File f= new File("D:\\document.pdf");
FileOutputStream fOut = new FileOutputStream(f);
doc.save(fOut);
我正在嘗試從
PDDocument
檢索File
或InputStream
實例,而不將PDDocument
保存到文件系統。[...]
PDFBox
是否有任何方法可以從現有PDDocument
返回File
或InputStream
?
顯然,如果不將PDDocument
保存到文件系統中, PDFBox無法返回有意義的File
對象。
它也沒有提供直接提供InputStream
的方法,但是很容易圍繞它編寫代碼。 例如:
InputStream docInputStream = null;
try ( ByteArrayOutputStream baos = new ByteArrayOutputStream();
PDDocument doc = new PDDocument() )
{
[...]
doc.save(baos);
docInputStream = new ByteArrayInputStream(baos.toByteArray());
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.