Ошибка сброса при сохранении программно созданного документа, содержащего изображение - PullRequest
1 голос
/ 27 октября 2019

У меня есть функция C #, которая сохраняет предоставленное изображение в PDF-файл, используя VSTO. Но это бросает:

System.AccessViolationException HResult = 0x80004003
Сообщение = Попытка чтения или записи в защищенную память. Это часто указывает на то, что другая память повреждена. Source = StackTrace:

Я пытался сохранить различными способами: см. Прокомментированный код:

public static Boolean ConvertImageFileToPDF(string imageFileName, string outputFileName, string attachmentName)
{
    try
    {
        Microsoft.Office.Interop.Word.Application wordApp = new Microsoft.Office.Interop.Word.Application();
        Microsoft.Office.Interop.Word.Document wordDoc;

        wordDoc = wordApp.Documents.Add();

        wordDoc.Content.Font.Name = "Arial";
        wordDoc.Content.Font.Size = 12;
        wordDoc.Content.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter;
        wordDoc.Content.Text = attachmentName;

        wordDoc.Content.InsertParagraphAfter();

        wordDoc.InlineShapes.AddPicture(imageFileName, false, true);

        wordDoc.Application.ActiveDocument.SaveAs2(outputFileName, WdSaveFormat.wdFormatPDF);
        //wordDoc.SaveAs2(outputFileName, WdSaveFormat.wdFormatPDF);
        //wordDoc.SaveAs(outputFileName, WdSaveFormat.wdFormatPDF);
        wordDoc.Close();
        wordApp.Application.Quit(false);
        return true;
    }
    catch
    {
        return false;
    }

Местоположение сохранения допустимо (простой временный каталог, который используется в другом месте в пределахкод без проблем).

Я искал решения без удачи, кто-нибудь может помочь, пожалуйста?

...