通过 c# 中的进程保存在 Adob​​e Reader 中打开的 pdf 文件

Posted

技术标签:

【中文标题】通过 c# 中的进程保存在 Adob​​e Reader 中打开的 pdf 文件【英文标题】:Saving a pdf file opened in Adobe Reader by a process in c# 【发布时间】:2020-05-13 10:29:38 【问题描述】:

我正在尝试通过“进程”在 Adob​​e Reader 中打开文件,因为 Adob​​e 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,但 Adob​​e Reader 会强制用户手动导航到 PDF 所在的目录。

以上是关于通过 c# 中的进程保存在 Adob​​e Reader 中打开的 pdf 文件的主要内容,如果未能解决你的问题,请参考以下文章

如何在保存 PDF 表单时阻止 Adob​​e Reader 询问“另存为”(即只允许“保存”)?

使用 Adob​​e AIR 在 iOS 上保存位图

PDFKit 和 PDFDocument 注释在 Adob​​e Acrobat 中不可见

以 EPS 格式保存 ggplot 以在 Adob​​e Illustrator 中进行编辑——文本问题

在 Adob​​e Animate 中从矢量保存高分辨率位图

使用 Adob​​e AIR 下载文件