是否可以使用 Acrobat.dll 在 ac# 应用程序中打开 PDF?
我知道我可以在我的 c# 可执行文件(不是 Web 应用程序)中显示 PDF 文件:
private AxAcroPDFLib.AxAcroPDF axAcroPDF1;
axAcroPDF1.LoadFile(@"somefile.pdf");
axAcroPDF1.Show();
但这是像浏览器中的常规 pdf 查看器。 我不想要这样。 我希望使用 Adobe 控件在我的 C# 应用程序中获得完整的 Adobe Standard 或 Professional 功能。 例如,如果我使用上面的代码,它会在 C# 应用程序中加载,并且我可以看到 adobe 工具栏(打印、保存等),但这对我来说毫无用处,因为我需要诸如保存之类的东西,而 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。
I know that I can display a PDF file in my c# executable (not web app) with:
private AxAcroPDFLib.AxAcroPDF axAcroPDF1;
axAcroPDF1.LoadFile(@"somefile.pdf");
axAcroPDF1.Show();
But that is the regular pdf viewer like in the browser. I don't want that. I want full Adobe Standard or Professional functionality in my C# application using the Adobe controls. For example, if I use the code above, it loads in the C# app and I can see the adobe toolbar (print, save, etc.) But it is useless to me because I need things like save which cannot be done with the activex viewer above. Specifically, you cannot save, just as you cannot within the broswer.
So, I referenced the acrobat.dll and am trying to use:
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();
It opens adobe acrobat but it opens it outside of my c# application. I need it to open in my c# application like the activex library does. Can it be done with these libraries?
If I cannot open it in my c# application I would like to be able to "hold" my c# app tied to it so the c# app knows when I close the adobe app. At least that way I'd have some measure of control. This means I would hit open, the adobe app opens. I close the adobe app, my C# app is aware of this and loads the newly changed doc with the activex library (because I don't need change ability anymore, just displaying.)
I have the full versions of adobe acrobat installed on my computer. It is not the reader.
Thank you for any help.
edit:
There is an example in vb in the adobe acrobat sdk. I believe it is called activeview.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您可以查看ABCpdf。 我不知道它是否具有此功能,但我们已将其用于我们的几个应用程序
you can check out ABCpdf. I dont know if it has this capability but we have used it for several of our apps
使用网络浏览器控件将是显示内容的一个选项。
Using a webbrowser control would be an option to display the content.
最好的选择是编写一个侦听器,当 Adobe.exe 不再运行时通知您的调用代码。 类似以下内容(根据您的用途进行调整)应该可以工作:
Best option is to write a listener which tells your calling code when Adobe.exe is no longer running. Something like the following (with tweaks for your uses) should work:
IText# 可能会帮助你。
您可以创建 PDF,并且我相信您可以使用它来阅读和修改它们。
至于在应用程序中显示......我不确定如何用 iText 显示它们或者是否可能(尚未尝试过),抱歉。 iText 确实可以让您转换为 RTF,这可能是一种方法。
IText# may help you out.
You can create PDF's and I believe you can use it to read and modify them.
As for displaying in the app..... I am not sure how to display them with iText or if it is possible (have not tried this yet), sorry. iText does let you convert to RTF which may be one approach.