Открыть PDF-файл стекирует Acrobat Reader - PullRequest
0 голосов
/ 04 октября 2019

Я пытаюсь сохранить текстовый документ в формате PDF и открыть его в моем приложении C # WPF. Это работает, но иногда на некоторых компьютерах блокирует Acrobat Reader.

В диспетчере задач я вижу два приостановленных процесса Acrobat Reader.

И, кроме того, я не могу открыть файл PDF, даже дважды щелкнув по нему, пока не убьём эти два приостановленных процесса.

Файл PDF создан успешно, я могу открыть его после того, как убил приостановленный процесспроцессы.

Что-то не так в моем коде?

Вот что я делаю:

Microsoft.Office.Interop.Word.Application app = null;
Microsoft.Office.Interop.Word.Document doc = null;
try
{
    string pth = Tools.UploadedFilesPath + @"\UserFiles\WordTemplates\QuoteTemplate.docx";

    if (File.Exists(pth))
    {
        string tempPath = System.IO.Path.GetTempPath() + Guid.NewGuid().ToString() + ".docx";
        System.IO.File.Copy(pth, tempPath);

        var pdfPath = tempPath.Replace(Path.GetFileName(tempPath), "Devis_" + string.Format("{0:dd_MM_yyyy}", quote.Quot_Date) + "_" + quote.Quot_Ref + "_" + Guid.NewGuid().ToString().Substring(0, 5) + ".pdf");

        //Here, I save the pdf. No error, I find the file in the folder.
        doc.SaveAs2(pdfPath, Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatPDF);

        doc.Close();
        app.Quit();

        System.Diagnostics.Process.Start(pdfPath);
    }
    else
        UserMethods.ShowWarning("Le fichier 'Modèle devis' n'est pas trouvable");
}
catch (Exception ex)
{
    UserMethods.ParseError(ex, "PrintQuote");
    if (doc != null)
        doc.Close();
    if (app != null)
        app.Quit();
}
...