通过 c# 中的进程保存在 Adobe Reader 中打开的 pdf 文件
Posted
技术标签:
【中文标题】通过 c# 中的进程保存在 Adobe Reader 中打开的 pdf 文件【英文标题】:Saving a pdf file opened in Adobe Reader by a process in c# 【发布时间】:2020-05-13 10:29:38 【问题描述】:我正在尝试通过“进程”在 Adobe Reader 中打开文件,因为 Adobe Reader 可以自行修复损坏的文件,但我还需要在代码级别从那里“另存为”文件,而无需手动保存,是否可以在 .net 中?
我正在使用的代码:
Process p = new Process();
p.StartInfo.FileName = file;
p.Start();
//Code to Save As this file
p.Close();
corrupt = true;
inputDocument = PdfReader.Open(file, PdfDocumentOpenMode.Import);
【问题讨论】:
嗨,这可以通过.net 使用任何开源 dll 以某种方式完成吗?只有第三方 API? 【参考方案1】:您可以通过使用 Windows 中内置的 AutomationAPI 戳应用程序来做到这一点。
TestStacks.White 是我过去用于自动化 UI 测试的自动化包装器,但它也可以满足您的需求:https://teststackwhite.readthedocs.io/en/latest/
【讨论】:
我有类似的问题,不幸的是,Adobe Reader 中没有 UI 选项可以简单地保存 PDF。它要求您选择与打开 PDF 的位置不同的文件夹。我一直在寻找一种方法来自动“保存”或让用户“保存”当前的 PDF,但 Adobe Reader 会强制用户手动导航到 PDF 所在的目录。以上是关于通过 c# 中的进程保存在 Adobe Reader 中打开的 pdf 文件的主要内容,如果未能解决你的问题,请参考以下文章
如何在保存 PDF 表单时阻止 Adobe Reader 询问“另存为”(即只允许“保存”)?
PDFKit 和 PDFDocument 注释在 Adobe Acrobat 中不可见
以 EPS 格式保存 ggplot 以在 Adobe Illustrator 中进行编辑——文本问题