pdfbox java.io.IOException:错误:文件结束,预期行

时间:2012-12-10 22:16:34

标签: inputstream outputstream pdfbox

这是一个过程。

  1. 使用pdf merger制作临时结果pdf文件。
  2. 在这个pdffile中,我将使用pdfbox插入页面编号,这将完成.pdf - >这很好用
  3. 在这里我添加

    1. 我想为这个将成为第一页的done.pdf制作封面
    2. 这必须有效,但我有这个

      java.io.IOException:错误:文件结束,预期行

      来自merger2.mergeDocuments()的

      ; < - 这里

      我花了一整天时间仍然无法解决它。

      这是代码

                 public static void main(String args[]) {
      
                    String tmpPdfPath = tempFolderPath + "\\" + "tempresult.pdf";
                    OutputStream bout = new BufferedOutputStream(new FileOutputStream(new File(tmpPdfPath)));             
      
                     System.out.println("temp pdf is written in ::::" + tempFolderPath
                              + "\\" + "tempresult.pdf");
      
                      merger.setDestinationStream(bout);
                      merger.mergeDocuments();
      
                      String finalPath = tempFolderPath + "\\" + "done.pdf";
                      PDFBoxParams params = new PDFBoxParams(tmpPdfPath, finalPath);
                      params.setPageRange(PDFBoxParams.PAGE_RANGE_ALL);
                      PDFBoxUtil.addMessage(params);
                      System.out.println("Success!");
      
                      //new code
                      ByteArrayOutputStream baos = new ByteArrayOutputStream();
                      PDFMergerUtility merger2 = new PDFMergerUtility();
                      merger2.addSource(PDFBoxUtil.displayTOC("hello"));
                      merger2.addSource(new ByteArrayInputStream(baos.toByteArray()));
      
                      OutputStream bout2 = new BufferedOutputStream(new FileOutputStream(
                              "C:/hereisthefinal.pdf"));
      
                      merger2.setDestinationStream(bout2);
                      merger2.mergeDocuments();
                      System.out.println("done! check the pdf!");
      
                     }
      

      **好吧我发现了什么。

      ByteArrayOutputStream baos = new ByteArrayOutputStream();

      这一部分,它必须包含所有以前的pdf数据。但它是空的。

      如何将数据提取到此处?

0 个答案:

没有答案