3

我在我的 pdf 字转换器上写作,我刚刚收到一个非常奇怪的异常,女巫对我来说毫无意义。

错误:PdfiumViewer.PdfException:{“不支持的安全方案”}

这种异常还是第一次出现。但我必须说实话,我从未尝试将超过 3-4 个文件从 pdf 转换为 word,而现在我正在处理超过 100 个文件。

这是我的代码,如果它太长,我很抱歉,但我根本不知道错误发生在哪一行

        public static void PdfToImage()
        {
            try
            {
                Application application = null;
                application = new Application();




                string path = @"C:\Users\chnikos\Desktop\Test\Batch1\";
                foreach (string file in Directory.EnumerateFiles(path, "*.pdf"))
                {
                    var doc = application.Documents.Add();
                    using (var document = PdfiumViewer.PdfDocument.Load(file))
                    {
                        int pagecount = document.PageCount;
                        for (int index = 0; index < pagecount; index++)
                        {
                            var image = document.Render(index, 200, 200, true);

                            image.Save(@"C:\Users\chnikos\Desktop\Test\Batch1\output" + index.ToString("000") + ".png", ImageFormat.Png);
                            application.Selection.InlineShapes.AddPicture(@"C:\Users\chnikos\Desktop\Test\Batch1\output" + index.ToString("000") + ".png");

                        }
                        string getFileName = file.Substring(file.LastIndexOf("\\"));
                        string getFileWithoutExtras = Regex.Replace(getFileName, @"\\", "");
                        string getFileWihtoutExtension = Regex.Replace(getFileWithoutExtras, @".pdf", "");

                        string fileName = @"C:\Users\chnikos\Desktop\Test\Batch1\" + getFileWihtoutExtension;
                        doc.PageSetup.PaperSize = WdPaperSize.wdPaperA4;

                        foreach (Microsoft.Office.Interop.Word.InlineShape inline in doc.InlineShapes)
                        {
                          .....
                        }
                        doc.PageSetup.TopMargin = 28.29f;
                        doc.PageSetup.LeftMargin = 28.29f;
                        doc.PageSetup.RightMargin = 30.29f;
                        doc.PageSetup.BottomMargin = 28.29f;

                        application.ActiveDocument.SaveAs(fileName, WdSaveFormat.wdFormatDocument);
                        doc.Close();

                        string imagePath = @"C:\Users\chnikos\Desktop\Test\Batch1\";
                        Array.ForEach(Directory.GetFiles(imagePath, "*.png"), delegate(string deletePath) { File.Delete(deletePath); });
                    }

                }
            }
            catch (Exception e)
            {
                Console.WriteLine("Error: " + e);
            }
        }
    }
}
4

0 回答 0