我想制作一个 C# 程序来保存 pdf 和 djvu 文件的书签。如何从 AcroRd32/DjVuReader 进程中找出当前页码?
1 回答
您可以通过 Adobe Acrobat 支持的 DDE 协议来实现。查看 Acrobat 的 DDE 规范(Adobe Inter Proces Communication Support Paper)。
现在,如果你不熟悉 DDE,让我给你一个简单的概述 - 它是一个基于 Microsoft (Windows) 的 IPC 协议,类似于命名管道 (Windows)、COM(OLE)、WCF、MSMQ(用于 IPC)、RPC等。实际上MSMQ在我看来可能是最接近的。
基本上,使用 DDE,您可以连接到 DDE 服务器(运行 acrobat 的本地计算机),并向其发送消息/命令。它的诀窍是 .NET(任何版本)不原生支持 DDE。要解决此问题,您可以在CodePlex上使用 NDDE 包装器(用托管 C++ 编写)
我已经成功地强制 AcroRd32.exe 打开文件,将特定页面打印到网络打印机......等等使用这个库(NDDE),这就是我推荐它的原因。它肯定比支付 Acrobat Development Toolkit 许可证要好得多...... grrrrrr。
无论哪种情况,我希望这会有所帮助。你也许可以通过 OLE 自动化和 COM 来做到这一点,但我从未尝试过。
谢谢,
<bleepzter/>
PS。如果它对您的工作有所帮助,请标记我的问题:) 谢谢!