0

我正在尝试使用此代码使用 pdfbox jar 在 java 中合并多个 pdf 文件。当它试图将第二个 pdf 合并到第一个时......它会出现 Stream closed 错误。有人可以帮我吗?

 public static string PDFMergingForForeignModule String(folder_name) {
      //Creating a File object for directory
      String path = "E:\Code";

      File directoryPath = new File(path);
      File[] files = directoryPath.list();
      
      String mergedFileName = "Merged_"+folder_name+".pdf";
      path = path + "\\"+ mergedFileName;
      mergePDFFiles(files, path);
      
  
      File mergedFile = new File(mergedFileName);
     }

public void mergePDFFiles(File[] files, String filepath) throws COSVisitorException{
    try {
        PDFMergerUtility pdfmerger = new PDFMergerUtility();
        for (File file : files) {
            PDDocument document = PDDocument.load(file);
            pdfmerger.setDestinationFileName(filepath);
            pdfmerger.addSource(file);
            pdfmerger.mergeDocuments();
            document.close();
        }
    } catch (IOException e) {
        logger.error("Error to merge files. Error: " + e.getMessage());
    }
}
4

1 回答 1

0

进入 write() 方法时,流已经关闭。我建议您 println 3 个不同的调试语句来发现问题。1 打开/创建流媒体,2 关闭它,3 尝试写入它,因此您可以看到操作顺序。另外,看看这里:java IO Exception: Stream Closed

于 2021-10-29T03:46:26.523 回答