martedì 20 aprile 2010

Visualizzare un Documento PDF in un PictureBox

Ciao a tutti, in questi giorni mi sono imbattuto in un nuovo problema..

Dovevo visualizzare un documento in PDF in una Windows Form e non c'era verso, anche cercando in internet trovavo molti che chiedevano come fare e nessuno che sapeva rispondere...

Una volta trovata la soluzione ho deciso di metterla qua, sperando che torni utile a qualcuno con il mio stesso problema (facendogli risparmiare un bel po' di tempo).

La soluzione consiste nel ricavare un'immagine per ogni pagina del documento PDF, e di caricarla in un pictureBox. Tutto qui.

Per il nostro progetto avremo bisogno di 1 libreria e 2 classi esterne (rigorosamente OpenSource):

- libreria: gsdll32.dll.
- Classe: Api.cs  Documentazione qui
- Classe: Gs.cs   Documentazione qui


La libreria la trovate su questo sito gratuitamente.E' open source e la documentazione la trovate qua (è di GhostScript).
Questa libreria dovrete copiarla all'interno della cartella System32 (perchè avremo bisogno di importarla per usarla).

Le 2 classi le potete trovare all'interno di questo progetto in questo percorso: PDFSharp-MigraDocFoundation-1_31\PDFsharp\code\PdfSharp.Ghostscript\Ghostscript\  (io le ho trovate qui, dovrebbero essere scaricabili dal sito di GhostScript comunque)


A questo punto il grosso è fatto.. ecco il codice che ci rimane da scrivere:


  //GS è la classe che abbiamo scaricato prima

  GS gs = new GS();
  //mi creo un'immagine del PDF tramite GhostScript
  Image imagePDF = gs.PdfToPng("NomeFilePdf", NumeroPagina, RisoluzioneImmagine);
  pictureBoxAnteprima.Image = imagePDF ;

0 commenti:

Posta un commento

Lettori fissi