[英]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.