【问题标题】:merged PDFs are showing as "in use" by WebKit when I try to delete them当我尝试删除合并的 PDF 时,WebKit 将它们显示为“正在使用”
【发布时间】:2015-05-01 20:32:40
【问题描述】:

我正在使用 Node、iTextSharp 和 Edge 将多个 PDF 合并为一个 PDF。在我尝试删除原始 PDF 之前,一切正常。 WebKit 正在“使用”它们。如果我关闭 NW,它们当然会被释放。我可以运行相同的代码,但使用控制台应用程序可以立即删除文件。有什么想法吗?

---NW javascript--- 
var edge = require('edge');
var dotNetFunction  = edge.func({
   assemblyFile: 'E:/VisualStudio2013Projects/Edge/Edge.PDF/bin/Debug/Edge.PDF.dll',
   typeName: 'Edge.PDF.StartUp',
   methodName: 'MergePDF'
});
var payload = {
   targetPDF: 'C:/test/042715JM75-NEW.pdf',
   filesPDF: ['C:/test/042715JM75.pdf','C:/test/042715JM75-sales-copy.pdf'],
};
---C#---
namespace Edge.PDF
{
 public class StartUp
  {
   public async Task<object> MergePDF(dynamic input)
   {
    return await Task.Run(async () =>
    {
       string lJsonData = string.Empty;
       string targetPDF = input.targetPDF;
       var filesPDF = input.filesPDF;
       using (FileStream stream = new FileStream(targetPDF, FileMode.Create))
            {
                Document pdfDoc = new Document(PageSize.A4);
                PdfCopy pdf = new PdfCopy(pdfDoc, stream);
                pdfDoc.Open();

                var files = filesPDF;                   
                foreach (string file in files)
                {               
                    pdf.AddDocument(new PdfReader(file));
                }
                if (pdfDoc != null)
                    pdfDoc.Close();
            }
            return Newtonsoft.Json.JsonConvert.SerializeObject(new { success = true});
                });
    }
}
}

【问题讨论】:

    标签: pdf itext node-webkit


    【解决方案1】:

    您应该创建一个 PdfReader 实例数组,而不是创建一个文件数组 (filesPDF)。将这些阅读器中的每一个添加到 pdf 并关闭 pdf 后,再次循环阅读器以关闭它们:

    foreach (PdfReader reader in fileReaders) {               
        reader.Close();
    }
    

    现在文件处理程序将被释放,您将能够删除文件。

    【讨论】:

      猜你喜欢
      • 2021-11-29
      • 2020-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多