хостинг PDF в приложении ac # - PullRequest
5 голосов
/ 18 июля 2010

Я создаю книгу для друга. У него есть содержание в слове (docx), поэтому у меня есть несколько вопросов. Ранее я создавал тему о том, как подойти к этому, и лучшим ответом было создать из него PDF. Суть этого состояла в том, чтобы у нас были вставные текстовые поля, ссылки и оглавление.

Теперь мне стало интересно, могу ли я разместить pdf в своем приложении. Я хочу сделать «Adobe Reader» в основном. Есть ли библиотека, которая делает это? Могу ли я использовать установленные COM / dll для этого?

Причина этого в том, что я должен был создать в своем приложении раздел «викторины», «табель успеваемости» или даже «закладку».

Спасибо, ребята.

Ответы [ 5 ]

6 голосов
/ 18 июля 2010

Создание пользовательского PDF-браузера управление может быть чрезвычайно сложной задачей. Вместо этого вы можете использовать настоящий Adobe Reader в своем приложении, поскольку он предоставляется в качестве элемента управления COM, который может быть размещен в любом приложении Windows. Вот шаги:

  1. Запустите новое приложение WinForms
  2. Сделать элемент управления Acrobat доступным на панели инструментов (Инструменты -> Добавить / удалить элементы панели инструментов: включите «Документ браузера Adobe Acrobat 7.0» на вкладке COM-компоненты). Не забудьте взять чашку кофе, прежде чем нажать на вкладку COM.
  3. Перетащите элемент управления в форму
  4. Управляйте этим:

    axAcroPDF1.LoadFile("mypdf.pdf");
    axAcroPDF1.Show();
    
1 голос
/ 19 июля 2010

Вы можете встроить Adobe Reader в свои приложения через компонент ActiveX, который установлен на вашем компьютере вместе с ридером. Вы можете добавить его в VS Toolbox на вкладке COM Components. Любой, у кого установлен Abobe Reader, сможет использовать ваше приложение для просмотра PDF-документов. Обратите внимание, что если не установлен Adobe Reader, ваша программа не будет работать, или вам нужно каким-то образом предоставить lib приложение. Если вы хотите что-то, что не требует Adobe Reader, вы можете проверить iText # .

1 голос
/ 18 июля 2010

У меня был очень хороший опыт работы с библиотеками Aspose . Они доступны по цене и сэкономят вам много времени.

1 голос
/ 18 июля 2010

Я знаю, что об этом уже спрашивали, но не могу вспомнить, где. Принятый ответ был примерно таким:

Было бы очень плохой идеей создать собственную программу чтения PDF, потому что:

  1. вы не контролируете, когда Adobe изменения спецификации
  2. Adobe предоставляет читатель бесплатно, а большинство пользователи уже установили его.
  3. Учитывая два предыдущих утверждения, с какой стати вы хотите тратить столько времени на изобретение колеса? Имеет смысл заново изобретать колесо, когда вы можете улучшить его, но не тогда, когда вы просто копируете свободно доступную функциональность.

Было бы гораздо лучше найти способ использовать созданный ими читатель Acrobat и распространять его бесплатно.

Это очень легко сделать. Все, что вам нужно сделать, это использовать элемент управления WebBrowser (при условии, что это WinForms) и установить DocumentSource в файл PDF. Элемент управления WebBrowser будет просто автоматически использовать любую программу чтения PDF, уже установленную на клиентском ПК, так же, как и Internet Explorer.

0 голосов
/ 19 июля 2010

Потенциальная проблема с использованием компонента Adobe ActiveX / com заключается в том, что для работы этого пользователя должен быть установлен Adobe Reader (я не думаю, что вы можете и / или можете распространять только элемент управления ActiveX и не хотите 'не хочу заставлять моих пользователей устанавливать Adobe Reader).Поэтому для более серьезной работы я бы попытался использовать библиотеку Pdf, которую вы можете распространять вместе с вашим кодом, например, написание (предположительно очень маленькой) оболочки P / Invoke для библиотеки с открытым исходным кодом http://ccxvii.net/mupdf/ или, если вы можете / хотитепозволить себе использовать какую-то коммерческую библиотеку.

Проблема с использованием элемента управления веб-браузера заключается в том, что вы должны быть осторожны, чтобы проверить, что произойдет, если целевой пользователь отключит встраивание pdf в IE.Может случиться так, что вместо встраивания вы получите внешнее устройство чтения Adobe (или что-либо еще зарегистрированное как обработчик PDF)!Возможно, есть обходной путь, но я уже был укушен этим раньше (что привело к одной из этих проблем «работает на моей машине»)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...