我尝试通过 提取 pdf 的文本
iTextSharp.text.pdf.parser.PdfTextExtractor.GetTextFromPage
,但由于 pdf 文件相对于内联图片的一些错误格式,它不起作用。
我发现我可以解决这个问题,如果我(A)在 Adobe Acrobat 中打开 pdf 并将其保存为优化的 pdf。然后解析将起作用。或者 (B) 我会在 Adobe Acrobat 中打开它,然后通过 Adobe PDF 再次打印为 pdf。
现在我有 14.000 个这些文件并且想要自动化 (A) 或 (B)。但不知何故,我无法成功。
对于 (A) 我包括了 Adobe 库,简而言之就是这样
mApp = new AcroAppClass();
avDoc = new AcroAVDocClass();
avDoc.Open (strFilePath, "");
pdDoc = (CAcroPDDoc)avDoc.GetPDDoc ();
pdDoc.Save(1, strFilePath.Substring(0, strFilePath.Length - 4) + "_changed.pdf");
但 Adobe SDK 不允许我另存为其他格式。
对于 (B) 它尝试了这样的事情:
Process pdfProcess = new Process();
pdfProcess.StartInfo.FileName = @"C:\Program Files (x86)\Adobe\Acrobat 11.0\Acrobat\AcroRd32.exe";
pdfProcess.StartInfo.Arguments = string.Format(@"/t", strFilePathSource, "Adobe PDF", "Adobe PDF", strFilePathTarget);
pdfProcess.Start();
这不会引发任何错误,但也不会产生任何文件。