在 c# 的不同页面上使用 Acrobat Reader 重新打开 pdf
Re-open pdf with Acrobat Reader on different pages in c#
我想随后使用 c# 和 Adobe 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 的缺点是 Adobe 在某些版本之前开始将服务名称从版本更改为版本(实际:"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
我想随后使用 c# 和 Adobe 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 的缺点是 Adobe 在某些版本之前开始将服务名称从版本更改为版本(实际:"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