【问题标题】:C# print a pdf and overlap of processC# 打印 pdf 和进程重叠
【发布时间】:2020-04-25 12:37:54
【问题描述】:

当我打印文件 A.pdf 和 B.pdf 时,我运行以下代码:

if (File.Exists(@"C:\Users\Luca\Desktop\A.pdf") == true && File.Exists(@"C:\Users\Luca\Desktop\B.pdf") == true)
        {
            using (PdfDocument one = PdfReader.Open(@"C:\Users\Luca\Desktop\A.pdf", PdfDocumentOpenMode.Import))
            using (PdfDocument two = PdfReader.Open(@"C:\Users\Luca\Desktop\B.pdf", PdfDocumentOpenMode.Import))
            using (PdfDocument outPdf = new PdfDocument())

            {
                CopyPages(one, outPdf);
                CopyPages(two, outPdf);

                outPdf.Save(@"C:\Users\Luca\Desktop\C.pdf");
            }
        }

但程序显示错误:

"System.IO.IOException: 'The process cannot access the 'C: \ Users \ Luca \ Desktop \ B.pdf' file because it is in use by another process.'.

我尝试使用Task.Delay(500);的方法来留出时间打印,但错误再次出现

【问题讨论】:

  • 根据我的测试,我没有遇到你得到的错误。不过,我有两个建议。首先,请检查您的pdf文件是否已被其他应用程序使用。其次,你可以把你的pdf路径放到d盘。

标签: c# visual-studio printing merge


【解决方案1】:

它导致之前打开文件失败,文件流仍然打开,没有被关闭。 当我遇到类似的错误时,重新启动我的电脑以关闭所有应用程序解决了这个错误。

附言
以下代码永远不会停止您的程序。

Task.Delay(500);

我们必须等待任务完成。

Task.Delay(500).Wait();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-17
    相关资源
    最近更新 更多