Отображение нескольких файлов PDF в элементе управления WebBrowser (форма Windows)

Я пытаюсь показать файлы PDF в элементе управления Windows Form WebBrowser. Я делаю это с помощью метода WebBrowser.Navigate(). Это работа, когда я хочу показать один файл PDF, чего мне мало. Мне нужно, когда пользователь нажимает кнопку, WebBrowser показывает другой файл PDF. Что я должен сделать?


person mshirdel    schedule 19.12.2011    source источник


Ответы (3)


Избегайте использования элемента управления WebBrowser только для отображения PDF-файла. Попробуйте использовать одну из многочисленных бесплатных библиотек PDF, доступных для .net, например PDFSharp.

Это позволит вам рисовать PDF-файлы на Form, а с помощью TabControl вы можете программно создавать вкладки и размещать новую программу просмотра PDF-файлов внутри вкладки.

Вы можете легко создать средство просмотра PDF для двух разных файлов (бок о бок или сверху и снизу), используя PDFSharp. Или вы можете использовать элемент управления ActiveX для Adobe Reader.

Редактировать: Насколько я понимаю, PDFSharp может напрямую отображать PDF-файлы. Это можно сделать, только экспортировав страницу в формат Jpeg/Png, а затем отобразив изображения. Извините за путаницу.

person Jeremy    schedule 19.12.2011
comment
Спасибо за руководство. Я пытаюсь использовать PDFSharp. - person mshirdel; 20.12.2011

Я бы на вашем месте сделал tabControl, а foreach tabControl, поставил бы веббровер, в котором был бы PDF по Tab.

РЕДАКТИРОВАТЬ: WebBroswer не похож на Internet Explorer. Internet Explorer имеет «Функция» наличия нескольких вкладок (так же, как Chrome и т. Д.). Элемент WebBroswer — это только содержимое вкладки :)

EDIT2: после многих лет я бы рекомендовал также использовать библиотеку PDF. В качестве прототипа это может сработать, но в реальном мире мы никогда не знаем, сколько их будет. вероятно, лучше всего: либо предоставить пользователю возможность открывать в компетентном программном обеспечении, например, Acrobat Reader, где вкладка изначально используется (DC), либо использовать библиотеку PDF.

person Martin Gemme    schedule 19.12.2011
comment
Спасибо, но я хочу показать другой PDF-файл в том же окне. Когда пользователь нажимает кнопку, я снова использую метод навигации, но старый PDF-файл все еще отображается. - person mshirdel; 20.12.2011
comment
Это плохая идея. Скажем, пользователь хочет показать 10 файлов PDF, элемент управления WebBrowser ужасен с памятью, и ваше приложение будет использовать до 300 МБ памяти. Почему бы просто не использовать библиотеку PDF? - person Jeremy; 20.12.2011

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

person CodeChamp    schedule 19.12.2011