首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Apache打开临时创建的PDFBox文件

Apache打开临时创建的PDFBox文件
EN

Stack Overflow用户
提问于 2020-12-31 15:33:46
回答 1查看 235关注 0票数 1

我正在使用apache pdfbox 2.x版本,并且我正在尝试读取一个临时创建的文件。下面是我创建并读取临时文件的代码:

代码语言:javascript
运行
复制
Path mergedTempFile = null;
    
        try {
            mergedTempFile = Files.createTempFile("merge_", ".pdf");
            PDDocument pdDocument = PDDocument.load(mergedTempFile.toFile());

但它会给出错误:

代码语言:javascript
运行
复制
java.io.IOException: Error: End-of-File, expected line
    at org.apache.pdfbox.pdfparser.BaseParser.readLine(BaseParser.java:1098)
    at org.apache.pdfbox.pdfparser.COSParser.parseHeader(COSParser.java:2577)
    at org.apache.pdfbox.pdfparser.COSParser.parsePDFHeader(COSParser.java:2560)
    at org.apache.pdfbox.pdfparser.PDFParser.parse(PDFParser.java:219)
    at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:1099)
    at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:1082)
    at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:1006)
    at com.howtodoinjava.demo.PdfboxApi.test(PdfboxApi.java:326)
    at com.howtodoinjava.demo.PdfboxApi.main(PdfboxApi.java:317)

从这个链接我得到了一个参考,但无论如何它都没有帮助:Similar Issue Link

请帮我弄一下这个。尽管如此,我还是摆脱不了这个。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-31 16:10:40

PDDocument.load(...)用于解析现有的PDF。

传递的临时文件(mergedTempFile)为空,因此出现异常。只需使用构造函数(驻留在内存中)创建一个PDDocument,然后使用PDDocument.save(...)保存它。

代码语言:javascript
运行
复制
Path mergedTempFile = null;
try {
    mergedTempFile = Files.createTempFile("merge_", ".pdf");
    try (PDDocument pdDocument = new PDDocument()) {

        // add content
        pdDocument.addPage(new PDPage()); // empty page as an example

        pdDocument.save(mergedTempFile.toFile());
    }

} catch (IOException e) {
    // exception handling
}

// use mergedTempFile for further logic
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65517954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档