在 c# 的不同页面上使用 Acrobat Reader 重新打开 pdf

Re-open pdf with Acrobat Reader on different pages in c#

我想随后使用 c# 和 Adob​​e Acrobat 在不同页面上多次打开同一个 pdf 文档 Reader。 OS 是 windows.

this answer 我学会了如何调用一个进程来启动 reader 并在所需的页面或目标位置打开 pdf。这很好用。但是,重新打开 pdf 文档的唯一可能性似乎是创建新 Acrobat Reader window 的选项 /n。如果没有此选项,Acrobat 似乎会忽略任何打开已打开文件的请求。

是否可以在不创建新选项卡的情况下在不同页面重新打开已打开的 pdf 或 reader?

从“打开 PDF 的参数”您可以使用:

AcroRd32.exe /a "page=1" "D:\Test.pdf"

我认为您的其他选择是使用 DDE 或 FDF。 DDE 的缺点是 Adob​​e 在某些版本之前开始将服务名称从版本更改为版本(实际:"AcroViewR17")。更多的工作是使用带有 js 代码的 FDF(特殊结构化文本文件)。自版本 4 以来不太优雅但可靠。

您将在附件中找到所需的 FDF 文件。您必须从 C# 编写和执行它。仅更改文件名和 js 代码流。 文件名必须与 OS 无关:将 D:\Test.pdf 写成 /D/test.pdf。 为了进行测试,您只需将其保存为 test.fdf 并通过双击执行即可。

祝你好运,莱因哈特

%FDF-1.2 %%---DEMO EXECUTE JAVASCRIPT VIA FDF---%%
1 0 obj << /FDF << /F (/D/Test.pdf)  /JavaScript << /Before 2 0 R  >> >> >> endobj
2 0 obj << >> stream

//my js-code
app.alert(this.numPages); //view total pages
this.pageNum=1;           //goto page number 2 (zero-based)

endstream
endobj
trailer << /Root 1 0 R >> %%EOF