Я знаю, что могу отобразить файл PDF в моем исполняемом файле c # (не в веб-приложении) с помощью:
private AxAcroPDFLib.AxAcroPDF axAcroPDF1;
axAcroPDF1.LoadFile(@"somefile.pdf");
axAcroPDF1.Show();
Но это обычный просмотрщик PDF, как в браузере. Я не хочу этого Мне нужна полная функциональность Adobe Standard или Professional в моем приложении C # с использованием элементов управления Adobe. Например, если я использую приведенный выше код, он загружается в приложение 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 #. Мне нужно, чтобы он открывался в моем приложении на c #, как это делает библиотека activex. Можно ли это сделать с этими библиотеками?
Если я не могу открыть его в своем приложении c #, я хотел бы иметь возможность "держать" мое приложение c # привязанным к нему, чтобы приложение c # знало, когда я закрываю приложение Adobe. По крайней мере, так у меня будет некоторая мера контроля. Это означает, что я открою, приложение Adobe откроется. Я закрываю приложение Adobe, мое приложение C # знает об этом и загружает недавно измененный документ с библиотекой ActiveX (потому что мне больше не нужна возможность изменения, просто отображается).
На моем компьютере установлены полные версии Adobe Acrobat. Это не читатель.
Спасибо за любую помощь.
редактирование:
Есть пример в VB в Adobe Acrobat SDK. Я считаю, что это называется activeview.