【问题标题】:Win32 and AcrobatWin32 和 Acrobat
【发布时间】:2010-02-24 21:24:00
【问题描述】:

我有一个用 C 语言编写的简单 Win32 应用程序,我想在其中打开 PDF。我知道我可以编译并链接到 Poppler 库,但是有没有办法使用 Acrobat Reader?有点像浏览器所做的那样,如果您安装了 Reader,它们可以通过一些插件界面自动在窗口中显示 PDF。问题是,我从来没有用过插件,也没有写过这样的接口。如何?是否也可以在之后安装 Reader 并以某种方式让应用意识到它的存在?

我还想控制缩放。以及 PDF 可能在内存中的内容。

编辑:

我刚刚发现了这个 [1]: “如果您安装了 Adob​​e Reader,您可以在 VisualStudio 中添加对 PDf 查看器 ActiveX 控件的 COM 引用,并在 WindowsFormsHost 控件中使用它。” 但我不明白它在说什么:如何在普通 Win32 C 中创建“COM 引用”并使用“WindowsFormsHost”?

[1]PDF Libraries to Display a PDF document in WPF

【问题讨论】:

标签: pdf winapi plugins


【解决方案1】:

在 Windows 上,如果您键入 mypdf.pdf 并在命令提示符中按回车键,它会在关联的应用程序 (在大多数情况下为 Adob​​e Reader) 中打开 pdf。因此,在 c# 中,我以 pdf 作为要运行的 文件 启动一个新进程。

您应该能够在 c 中做类似的事情而无需使用插件。

【讨论】:

  • 是的,但我也想控制缩放。以及 PDF 可能在内存中的内容......
  • @Lars - 我很确定您根本无法自动化 Adob​​e Reader。您需要第三方插件才能执行此操作。
  • 第三者是什么意思? Acrobat 的插件?哪个又由我的应用控制?
  • @Lars - 我可能不清楚我不是说you'll need a plug-in to control Adobe Reader(我认为没有)。我的意思是其他人提供的一些代码、库或 dll(可以呈现 pdf),您可以从您的应用程序中控制它们(例如您提到的 poppler)。
  • 太不幸了... Cocoa 有 PDFKit,Poppler 非常慢。
【解决方案2】:

除了 Nifle 所说的之外,如果您不想将 Acrobat Reader 作为一个插件运行在应用程序的窗口中(例如 IE 在 IE 的窗口中运行它),而不是将其作为单独的应用程序运行,Adobe Acrobat Reader download page 说,

Internet Explorer 的 ActiveX 控件和 Netscape Navigator 的插件都包含并自动安装在您选择的浏览器中。

插件技术大概就是叫ActiveX的技术吧。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-07
    • 2015-08-20
    • 1970-01-01
    • 2017-05-31
    • 1970-01-01
    • 1970-01-01
    • 2018-06-26
    相关资源
    最近更新 更多