Добавление средства просмотра PDF в приложение WPF
я новичок в WPF и пытаюсь добавить средство просмотра PDF в мое приложение WPF, но, похоже, не могу понять, как это сделать... Я попытался следовать нескольким учебникам / примерам, которые я нашел в интернете, но они, похоже, не работают для меня по разным причинам...
например, я пробовал следующие учебник в: https://documentation.devexpress.com/#WPF/CustomDocument114328 чтобы добавить PDF Viewer во время разработки-он говорит
перетащите PdfViewerControl из DX.15.2: вкладка Data & Analytics Toolbox и поместите ее в Главное окно
однако у меня, похоже, нет Data & Analytics
вкладка в панели инструментов... есть Data
tab, но это просто такие элементы, как указатель, диаграмма, ListView и т. д. Есть ли что-то, что мне нужно сделать, чтобы добавить/ включить Data & Analytics
панель инструментов в Visual Studio?
я попытался следовать учебнику на: https://documentation.devexpress.com/#WPF/CustomDocument114329 чтобы добавить PDF Viewer через код - он говорит
откройте Обозреватель решений, щелкните правой кнопкой мыши ссылки и выберите Добавить ссылку... чтобы добавить библиотеку просмотра PDF.
затем найдите DevExpress.Данные.программы V15.2, частое.Документ pdf.программы V15.2.Core, DevExpress.Французский тихоокеанский франк.DocumentViewer.программы V15.2.Core и DevExpress.Французский тихоокеанский франк.PdfViewer.v15.2 сборки и активировать их проверку ящики.
но когда я иду в Add Reference
, Я не могу найти сборки, которые он упоминает в любом месте, и если я " ищу " их, никакие элементы не найдены...
я пропускаю include
, или мне нужно импортировать некоторые библиотеки откуда-то или что-то, чтобы использовать их?
еще один, который я пробовал:http://www.codeproject.com/Articles/380019/Using-Adobe-Reader-in-a-WPF-app который говорит:
после этого элемент управления добавляется в проект, Конструктор Windows Forms должен быть открыт с пустым холстом. Вам нужно будет открыть окно инструментов (CTRL + W, X). В качестве первого шага рекомендуется добавить новую вкладку для пользовательских элементов управления - это опция из контекстного меню панели инструментов. При этом новая вкладка развернута, выберите "выбрать элементы" в контекстном меню. Когда появится диалоговое окно выбор элементов панели инструментов, выберите вкладку компоненты COM и выберите Adobe PDF Reader (это добавит AcroPDF.DLL в инструментальный ящик.)
но я не могу найти Choose Toolbox Items
или COM Components
он говорит...
может ли кто-нибудь указать мне более ясный учебник или объяснить, как я мог бы добавить средство просмотра PDF в свое приложение WPF? Я использую Visual Studio 2015.
редактировать
я попытался отобразить PDF-файл в окне приложения, выполнив следующие действия:
добавлять <Grid>
для отображения PDF в GUI в XAML:
<StackPanel>
<Grid x:Name="browserHost" Height="300" Width="525" Margin="0,0,0,0"></Grid>
</StackPanel>
добавлять WebBrowser
до <Grid>
в C# и указывая на местоположение PDF, которое я хочу отобразить:
System.Windows.Controls.WebBrowser browser = new System.Windows.Controls.WebBrowser();
public MainWindow()
{
InitializeComponent();
try
{
//browser.Navigate("C:...sample.pdf");
browserHost.Children.Add(browser);
//browser.Visible = true;
browser.Navigate("C:...sample.pdf");
browserHost.Opacity = 200;
}catch(Exception e)
{
Console.WriteLine("browser is visible/ not: " + browserHost.Visibility);
}
}
private void Window_Loaded_1(object sender, RoutedEventArgs e)
{
/*Create the interop host control */
//System.Windows.Forms.Integration.WindowsFormsHost host = new System.Windows.Forms.Integration.WindowFormsHost();
/*Create the MaskedTextBox control */
//browser.Navigate("C:...sample.pdf");
//host.Child = browser;
browserHost.Children.Add(browser);
}
но в настоящее время, когда я запускаю свое приложение, как только оно загружается,browser
что я добавил к нему отображает страницу, которая говорит:
навигация к веб-странице была отменена
и появляется диалоговое окно с вопросом, Хочу ли я открыть или сохранить файл (sample.pdf
- тот, кто я попытка отображения в браузере)...
почему он пытается загрузить файл, а не отображать его? Как я могу получить browser
для отображения файла вместо того, чтобы пытаться загрузить его? Или я должен использовать что-то другое, кроме System.Windows.Controls.WebBrowser
здесь?
4 ответов
как уже предлагал @NawedNabiZada, один из попробованных и простых способов-использовать встроенный InternetExplorer, чтобы показать Adobe PDF Reader
элемент управления ActiveX. Поэтому предполагается, что вы работаете на Windows и Adobe PDF Reader
установлен.
затем вы создаете пользовательский элемент управления, окно и т. д. который содержит следующий элемент управления:
<WebBrowser x:Name="pdfWebViewer"></WebBrowser>
в конструкторе перейдите к пустой странице:
dfWebViewer.Navigate(new Uri("about:blank"));
чтобы загрузить PDF-документ в этот элемент управления, используйте этот простой код:
pdfWebViewer.Navigate(fullPathToPDF);
этот подход используется многими приложениями Windows не только WPF, включая SAP client, но и имеет скрытую проблему, см. этот вопрос.
для этого необходимо включить аддон Adobe PDF Reader в Internet Explorer. Существуют различные проблемы с Acrobat Reader XI, лучше использовать версию DC. Чтобы включить Adobe PDF перейдите в настройки IE, надстройки и найдите Adobe PDF Reader и включите его (AR XI и выше).
для меня это было предпочтительный способ по сравнению со статьей проекта кода, которую вы связали.
Это также возможно с помощью cefsharp Веб-Браузер.
Он включает встроенные модули для PDF, поэтому вам не нужен Acrobat-Reader или любой другой ActiveX.
для тех, кто натыкается на это, и нуждается в немного больше контроля, чем с WebBrowser: это довольно легко сделать свой собственный просмотрщик PDF с Windows 10 API. Я написал блог о том, как это сделать. Вы можете легко добавить к нему другие функции, такие как рисование сверху (подпись) и так далее.
код доступен на сайте github.
однако для супер продвинутых функций вам, вероятно, понадобится один из этих дорогих библиотеки.
для просмотра WPF pdf вы можете использовать http://pdfprinting.net/