Adicionar um visualizador de PDF a uma aplicação WPF

sou novo no WPF, e estou a tentar adicionar um visualizador de PDF à minha aplicação WPF, mas não consigo perceber como fazê-lo... Eu tentei seguir alguns tutoriais / exemplos que eu encontrei on-line, mas eles não parecem trabalhar para mim por várias razões...

por exemplo, eu tentei seguir o tutorial em: https://documentation.devexpress.com/#WPF/CustomDocument114328 para adicionar um visualizador de PDF no momento do Design-diz a

arraste o PdfViewerControl do DX.15. 2: Página de ferramentas de & Análise de dados e largue-a na janela principal

No entanto, parece que Não tenho um tab na caixa de ferramentas... há uma página Data, mas que só tem itens como ponteiro, gráfico, ListView, etc. Há alguma coisa que eu precise fazer para adicionar/ activar a barra de ferramentas Data & Analytics no Visual Studio?

tentei seguir o tutorial em: https://documentation.devexpress.com/#WPF/CustomDocument114329 para adicionar um visualizador de PDF através do code-it diz a

abra o Solution Explorer, as referências do botão direito e escolha Adicionar Referência... para adicionar a biblioteca de Visualizador de PDF.

Então, localiza a DevExpress.Dado.v15. 2, DevExpress.Documento.v15. 2.Núcleo, DevExpress.Xpf.DocumentViewer.v15. 2.Core, and DevExpress.Xpf.PdfViewer.montagens v15. 2 e activar as caixas de controlo.

Mas quando vou a Add Reference, não consigo encontrar as assembleias que menciona em qualquer lugar, e se eu 'procurar' por elas, nenhum item é encontrado...

Estou a sentir falta de um include, ou preciso de importar algumas bibliotecas de algum lugar ou algo assim para as usar?

Outro que tentei foi: http://www.codeproject.com/Articles/380019/Using-Adobe-Reader-in-a-WPF-app que diz:

Uma vez que este controlo é adicionado ao projecto, o desenhador de formulários do Windows deve ser aberto com uma área de desenho em branco. Terá de abrir a caixa de ferramentas (CTRL + W, X). Como um primeiro passo é uma boa idéia adicionar uma nova página para os controlos personalizados - esta é uma opção do menu de contexto da caixa de ferramentas. Com esta nova página expandida, seleccione "escolher os itens" no menu de contexto. Quando aparecer a janela para escolher os itens da caixa de ferramentas, seleccione a página de componentes COM e seleccione o leitor de Adobe PDF (isto irá adicionar o AcroPDF.DLL para a caixa de ferramentas).

Mas parece que não encontro o que ele diz...

Pode alguém indicar-me um tutorial mais claro, ou explicar como eu adicionaria um visualizador de PDF ao meu WPF? aplicação? Estou a usar o Visual Studio 2015.

Editar

tentei mostrar o ficheiro PDF dentro da minha janela de Aplicação, Fazendo o seguinte:

adicionar um <Grid> para mostrar o PDF à interface gráfica no XAML:

<StackPanel>
    <Grid x:Name="browserHost" Height="300" Width="525" Margin="0,0,0,0"></Grid>
</StackPanel>

adicionando um WebBrowser ao <Grid> no C#, e apontando para a localização do PDF eu quero mostrar:

        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);
    }

mas atualmente, quando eu executar a minha aplicação, assim que ela carrega, o browser que eu adicionei a ele exibe uma página que diz:

A navegação para a página web foi cancelada.

e aparece uma janela a perguntar - me se quero abrir ou gravar o ficheiro (sample.pdf - o que estou a tentar mostrar no navegador)...

Por que ele está tentando baixar o arquivo, em vez de exibi-lo? Como posso fazer com que o browser mostre o arquivo em vez de tentar baixá-lo? Ou devo usar algo que não seja um System.Windows.Controls.WebBrowser aqui?

Author: someone2088, 2016-05-24

4 answers

Como já foi sugerido por @NawedNabiZada, uma forma tentada e simples é usar o InternetExplorer incorporado para mostrar Adobe PDF Reader O controlo ActiveX. Então ele assume que você está rodando no Windows e tem Adobe PDF Reader instalado.

Depois cria um controlo do utilizador, uma janela, etc. que contém o seguinte controlo:

<WebBrowser x:Name="pdfWebViewer"></WebBrowser>

No construtor navegue até à página em branco:

dfWebViewer.Navigate(new Uri("about:blank"));

Para carregar um documento PDF para esse controlo, use este código simples:

pdfWebViewer.Navigate(fullPathToPDF);

Esta abordagem é usada por muitos Windows software não só aplicativos WPF, incluindo o cliente SAP, mas tem um problema oculto, Veja esta pergunta .

O leitor de Adobe PDF Addon no Internet Explorer deve estar habilitado para que isso funcione. Existem vários problemas com o Acrobat Reader XI, melhor para usar a versão DC. Para activar o Adobe PDF go to IE settings, add-ons e encontrar Adobe PDF Reader e activá-lo (AR XI e acima).

Para mim, esta foi a forma preferida em comparação com o artigo do projeto de código que você ligou.
 8
Author: Vojtěch Dohnal, 2017-04-13 12:13:43

Também é possível pelo navegador Webcefsharp .

Ele inclui módulos embutidos para PDF, então você não precisa Acrobat-Reader,ou qualquer outro ActiveX.

Iniciar CefSharp em WPF

 1
Author: dovid, 2017-10-31 08:23:39

Para qualquer um tropeçando sobre isso, e na necessidade de um pouco mais de controle do que com o WebBrowser: é muito fácil fazer o seu próprio visualizador de PDF com APIs do Windows 10. Eu escrevi um blog sobre como fazê-lo. Você pode facilmente adicionar outras características a ele, como desenho em cima (assinatura) dele e assim por diante.

O código está disponível em github .

No entanto, para os recursos super avançados, você provavelmente vai precisar de uma dessas bibliotecas caras.
 1
Author: LanderV, 2018-02-02 11:29:36

Para o visualizador de pdf WPF pode usar http://pdfprinting.net/

 0
Author: user2038221, 2016-09-22 08:42:10