Visualizzare file PDF all’interno di applicazioni WPF
Anche questa non è una cosa nuova ma può servire magari a programmatori alle prime armi.
Un mio cliente mi ha chiesto che nel gestionale che gli ho sviluppato ci fosse una funzionalità per visualizzare file scanditi con lo scanner.
Poiché la maggior parte degli scanner incorporati nelle stampanti multifunzione creano i documenti in formato PDF, mi serviva qualcosa che visualizzasse quindi i file PDF.
Cercando su Internet ho trovato una libreria veramente facile da implementare.
Il progetto di questa libreria si trova su CodePlex, questo è il link: https://wpfpdfviewer.codeplex.com/
Se pensate vi possa servire, scaricatelo presto, perché Codeplex sta andando a morire, addirittura lo davano in chiusura per il 15/12/2017 anche se ancora è online. Questa è la pagina del blog che ne parla: https://blogs.msdn.microsoft.com/bharry/2017/03/31/shutting-down-codeplex/
Scarichiamo la libreria che la useremo in un nuovo progetto WP di esempio.
Apriamo quindi Visual Studio (qualunque versione va bene), creiamo un nuovo progetto WPF (chiamatelo come volete) e aggiungiamo una Reference alla libreria scaricata. Io ho creato il progetto in VB.NET ma funzionerà anche su un progetto in C# con la dovuta conversione.
Il codice XAML da aggiungere alla Window dove volete far visualizzare il pdf è:
xmlns:WPFPdfViewer="clr-namespace:WPFPdfViewer;assembly=WPFPdfViewer"
Questa riga va aggiunta all’interno del tag <Window>, mentre poi all’interno della Grid o del contenitore dove volete far vedere il pdf il codice da aggiungere è:
<WPFPdfViewer:PdfViewer x:Name="pdfViewer" Grid.Column="1">
</WPFPdfViewer:PdfViewer>
Se provate ora a compilare il progetto vi saranno mostrati degli errori:
Questo perché nella stessa cartella del progetto, bisogna aggiungere altre due librerie: Interop.AcroPDFLib.dll e AxInterop.AcroPDFLib.dll scaricabili anche questo nello stesso pacchetto della libreria principale.
Chiudiamo il progetto, inseriamo i due file e lo riapriamo. Ora riproviamo a compilarlo e vedete che non darà più errori.
Ora nel code-behind dobbiamo aggiungere semplicemente questa riga, con il file pdf da visualizzare:
pdfViewer.LoadFile("C:\3431765765.pdf")
Ovviamente il nome del file può venire dal database, da una TextBox etc. etc. e la riga lo potete mettere in qualunque evento.
Io l’ho messo per test al caricamento della pagina.
Compiliamo ed eseguiamo il progetto ed ecco che il pdf sarà mostrato:
Una cosa non ovvia. Per poter funzionare c’è bisogno che nel pc sia installato Acrobat Reader DC, da qui il link: https://get.adobe.com/it/reader/
Rispondi