I file PDF hanno un formato di documento interno che richiede un oggetto software che "comprenda" il formato. Poiché molti di voi potrebbero aver utilizzato le funzioni di Office nel codice VB, esaminiamo brevemente Microsoft Word come esempio di elaborazione di un documento formattato per essere sicuri di comprendere il concetto. Se si desidera lavorare con un documento di Word, è necessario aggiungere un riferimento alla libreria di oggetti Microsoft Word 12.0 (per Word 2007) e quindi creare un'istanza dell'oggetto Applicazione Word nel codice.
Dim myWord As Microsoft.Office.Interop.Word.ApplicationClass
'Avvia Word e apri il documento.
myWord = CreateObject ("Word.Application")
myWord.Visible = True
myWord.Documents.Open ( "C: \ myWordDocument.docx")
("" deve essere sostituito con il percorso effettivo del documento per far funzionare questo codice sul tuo PC.)
Microsoft utilizza la libreria di oggetti di Word per fornire altri metodi e proprietà per l'uso. Leggi l'articolo Interoperabilità COM -.NET in Visual Basic per saperne di più sull'interoperabilità COM di Office.
Ma i file PDF non sono una tecnologia Microsoft. PDF - Portable Document Format - è un formato di file creato da Adobe Systems per lo scambio di documenti. Per anni, era totalmente proprietario e dovevi ottenere software in grado di elaborare un file PDF da Adobe. Il 1 ° luglio 2008, il PDF è stato finalizzato come standard internazionale pubblicato. Ora, chiunque è autorizzato a creare applicazioni in grado di leggere e scrivere file PDF senza dover pagare royalties ad Adobe Systems. Se prevedi di vendere il tuo software, ti potrebbe essere richiesto di ottenere una licenza, ma Adobe li fornisce gratuitamente. (Microsoft ha creato un formato diverso chiamato XPS basato su XML. Il formato PDF di Adobe si basa su Postscript. XPS è diventato uno standard internazionale pubblicato il 16 giugno 2009.)
Poiché il formato PDF è un concorrente della tecnologia Microsoft, non forniscono molto supporto e devi ottenere un oggetto software che "comprenda" il formato PDF da qualcuno diverso da Microsoft in questo momento. Adobe restituisce il favore. Non supportano nemmeno la tecnologia Microsoft. Citando dall'ultima documentazione di Adobe Acrobat 9.1 (ottobre 2009), "Attualmente non esiste supporto per lo sviluppo di plug-in che utilizzano linguaggi gestiti come C # o VB.NET". (Un "plug-in" è un componente software su richiesta. Il plug-in di Adobe viene utilizzato per visualizzare i PDF in un browser. ")
Poiché il PDF è uno standard, diverse aziende hanno sviluppato software in vendita che è possibile aggiungere al progetto che farà il lavoro, incluso Adobe. Sono inoltre disponibili numerosi sistemi open source. È inoltre possibile utilizzare le librerie di oggetti Word (o Visio) per leggere e scrivere file PDF, ma l'utilizzo di questi sistemi di grandi dimensioni proprio per questa cosa richiederà una programmazione aggiuntiva, ha anche problemi di licenza e renderà il programma più grande di quanto non debba essere.
Proprio come è necessario acquistare Office prima di poter usufruire di Word, è necessario acquistare anche la versione completa di Acrobat prima di poter usufruire di più di un semplice Reader. Utilizzerai l'intero prodotto Acrobat nello stesso modo in cui vengono utilizzate altre librerie di oggetti, come Word 2007 sopra. Non ho installato l'intero prodotto Acrobat, quindi non ho potuto fornire esempi testati qui.
Ma se hai solo bisogno di visualizzare i file PDF nel tuo programma, Adobe fornisce un controllo COM ActiveX che puoi aggiungere a VB.NET Toolbox. Farà il lavoro gratuitamente. È lo stesso che probabilmente utilizzerai per visualizzare comunque i file PDF: Adobe Acrobat PDF Reader gratuito.
Per utilizzare il controllo Reader, assicurarsi innanzitutto di aver scaricato e installato Acrobat Reader gratuito da Adobe.
Il passaggio 2 consiste nell'aggiungere il controllo alla casella degli strumenti VB.NET. Apri VB.NET e avvia un'applicazione Windows standard. (La "prossima generazione" di presentazione di Microsoft, WPF, non funziona ancora con questo controllo. Ci dispiace!) Per farlo, fai clic con il pulsante destro del mouse su qualsiasi scheda (come "Controlli comuni") e seleziona "Scegli elementi ..." dal menu contestuale che si apre. Selezionare la scheda "Componenti COM" e fare clic sulla casella di controllo accanto a "Adobe PDF Reader" e fare clic su OK. Dovresti essere in grado di scorrere fino alla scheda "Controlli" nella casella degli strumenti e vedere "Adobe PDF Reader" lì.
Ora trascina il controllo sul tuo Windows Form nella finestra di progettazione e ridimensionalo in modo appropriato. Per questo breve esempio, non ho intenzione di aggiungere altre logiche, ma il controllo ha molta flessibilità di cui ti dirò come scoprirlo in seguito. Per questo esempio, ho intenzione di caricare un semplice PDF che ho creato in Word 2007. Per fare ciò, aggiungi questo codice al modulo Carica la procedura dell'evento:
Console.WriteLine (AxAcroPDF1.LoadFile (_
"C: \ Users \ Temp \ SamplePDF.pdf"))
Sostituisci il percorso e il nome del file PDF sul tuo computer per eseguire questo codice. Ho visualizzato il risultato della chiamata nelle finestre Output solo per mostrare come funziona. Ecco il risultato:
--------
Fare clic qui per visualizzare l'illustrazione
Fare clic sul pulsante Indietro sul browser per tornare
--------
Se si desidera controllare Reader, nel controllo sono presenti anche metodi e proprietà. Ma le brave persone di Adobe hanno fatto un lavoro migliore di quanto potessi. Scarica Adobe Acrobat SDK dal loro centro per sviluppatori (http://www.adobe.com/devnet/acrobat/). Il programma AcrobatActiveXVB nella directory VBSamples dell'SDK mostra come navigare in un documento, ottenere i numeri di versione del software Adobe in uso e molto altro. Se non è installato il sistema Acrobat completo, che deve essere acquistato da Adobe, non sarà possibile eseguire altri esempi.