Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Apache PDFBox打开临时创建的PDF文件_Java_Pdfbox - Fatal编程技术网

Java Apache PDFBox打开临时创建的PDF文件

Java Apache PDFBox打开临时创建的PDF文件,java,pdfbox,Java,Pdfbox,我正在使用ApachePDFBOx2.x版本,我正在尝试读取一个临时创建的文件。 下面是我创建临时文件并读取它的代码: Path mergedTempFile = null; try { mergedTempFile = Files.createTempFile("merge_", ".pdf"); PDDocument pdDocument = PDDocument.load(me

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

Path mergedTempFile = null;
    
        try {
            mergedTempFile = Files.createTempFile("merge_", ".pdf");
            PDDocument pdDocument = PDDocument.load(mergedTempFile.toFile());
但它给出了错误:

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)
从这个链接中,我得到了一个参考资料,但它没有任何帮助:

请帮我做这个。尽管如此,我还是无法摆脱这个问题。

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

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

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