我知道我可以在我的 c# 可执行文件(不是网络应用程序)中显示一个 PDF 文件:
private AxAcroPDFLib.AxAcroPDF axAcroPDF1;
axAcroPDF1.LoadFile(@"somefile.pdf");
axAcroPDF1.Show();
但那是浏览器中的常规 pdf 查看器。我不想要那个。我希望使用 Adobe 控件在我的 C# 应用程序中使用完整的 Adobe Standard 或 Professional 功能。例如,如果我使用上面的代码,它会加载到 C# 应用程序中,我可以看到 adobe 工具栏(打印、保存等),但这对我来说没用,因为我需要像 save 这样的东西,而 activex 无法完成上面的查看器。具体来说,您无法保存,就像您无法在浏览器中一样。
因此,我引用了 acrobat.dll 并尝试使用:
Acrobat.AcroAVDocClass _acroDoc = new Acrobat.AcroAVDocClass();
Acrobat.AcroApp _myAdobe = new Acrobat.AcroApp();
Acrobat.AcroPDDoc _pdDoc = null;
_acroDoc.Open(myPath, "test");
pdDoc = (Acrobat.AcroPDDoc)(_acroDoc.GetPDDoc());
_acroDoc.SetViewMode(2);
_myAdobe.Show();
它会打开 adobe acrobat,但会在我的 c# 应用程序之外打开它。我需要它像 activex 库一样在我的 c# 应用程序中打开。可以用这些库来完成吗?
如果我无法在我的 c# 应用程序中打开它,我希望能够“保持”我的 c# 应用程序绑定到它,以便 c# 应用程序知道我何时关闭 adobe 应用程序。至少这样我会有一定的控制力。这意味着我会打开,adobe 应用程序会打开。我关闭了 adobe 应用程序,我的 C# 应用程序意识到了这一点,并使用 activex 库加载了新更改的文档(因为我不再需要更改能力,只是显示。)
我的电脑上安装了完整版的 adobe acrobat。它不是读者。
感谢您的任何帮助。
编辑:在 adobe acrobat sdk 中有一个 vb 示例。我相信它被称为activeview。