Les fichiers PDF ont un format de document interne qui nécessite un objet logiciel qui "comprend" le format. Étant donné que beaucoup d'entre vous ont peut-être utilisé les fonctions d'Office dans votre code VB, examinons brièvement Microsoft Word comme exemple de traitement d'un document formaté pour nous assurer que nous comprenons le concept. Si vous souhaitez travailler avec un document Word, vous devez ajouter une référence à la bibliothèque d'objets Microsoft Word 12.0 (pour Word 2007), puis instancier l'objet Application Word dans votre code.
Dim myWord As Microsoft.Office.Interop.Word.ApplicationClass
'Démarrez Word et ouvrez le document.
myWord = CreateObject ("Word.Application")
myWord.Visible = True
myWord.Documents.Open ("C: \ myWordDocument.docx")
("" doit être remplacé par le chemin d'accès réel au document pour que ce code fonctionne sur votre PC.)
Microsoft utilise la bibliothèque d'objets Word pour fournir d'autres méthodes et propriétés à votre usage. Lisez l'article COM -.NET Interoperability in Visual Basic to understand more about Office COM interop.
Mais les fichiers PDF ne sont pas une technologie Microsoft. PDF - Portable Document Format - est un format de fichier créé par Adobe Systems pour l'échange de documents. Pendant des années, il était totalement propriétaire et vous deviez obtenir un logiciel capable de traiter un fichier PDF d'Adobe. Le 1er juillet 2008, le PDF a été finalisé en tant que norme internationale publiée. Désormais, tout le monde est autorisé à créer des applications qui peuvent lire et écrire des fichiers PDF sans avoir à payer de redevances à Adobe Systems. Si vous prévoyez de vendre votre logiciel, vous devrez peut-être toujours obtenir une licence, mais Adobe les fournit gratuitement. (Microsoft a créé un format différent appelé XPS qui est basé sur XML. Le format PDF d'Adobe est basé sur Postscript. XPS est devenu une norme internationale publiée le 16 juin 2009.)
Étant donné que le format PDF est un concurrent de la technologie de Microsoft, ils ne fournissent pas beaucoup de support et vous devez obtenir un objet logiciel qui "comprend" le format PDF de quelqu'un d'autre que Microsoft en ce moment. Adobe retourne la faveur. Ils ne prennent pas très bien en charge la technologie Microsoft non plus. Citant la dernière documentation d'Adobe Acrobat 9.1 (octobre 2009), "Il n'y a actuellement aucune prise en charge pour le développement de plug-ins utilisant des langages gérés tels que C # ou VB.NET." (Un "plug-in" est un composant logiciel à la demande. Le plug-in d'Adobe est utilisé pour afficher les PDF dans un navigateur. ")
Étant donné que le PDF est une norme, plusieurs sociétés ont développé un logiciel à vendre que vous pouvez ajouter à votre projet qui fera le travail, y compris Adobe. Il existe également un certain nombre de systèmes open source. Vous pouvez également utiliser les bibliothèques d'objets Word (ou Visio) pour lire et écrire des fichiers PDF, mais l'utilisation de ces grands systèmes pour cette seule chose nécessitera une programmation supplémentaire, a également des problèmes de licence et rendra votre programme plus gros qu'il ne doit l'être.
Tout comme vous devez acheter Office avant de pouvoir profiter de Word, vous devez également acheter la version complète d'Acrobat avant de pouvoir profiter de bien plus que du Reader. Vous utiliseriez le produit Acrobat complet de la même manière que les autres bibliothèques d'objets, comme Word 2007 ci-dessus, sont utilisées. Je n'arrive pas à avoir le produit Acrobat complet installé, je n'ai donc pas pu fournir d'exemples testés ici.
Mais si vous avez seulement besoin d'afficher des fichiers PDF dans votre programme, Adobe fournit un contrôle COM ActiveX que vous pouvez ajouter à la boîte à outils VB.NET. Il fera le travail gratuitement. C'est le même que vous utilisez probablement pour afficher les fichiers PDF de toute façon: le lecteur Adobe Acrobat PDF gratuit.
Pour utiliser le contrôle Reader, assurez-vous d'abord que vous avez téléchargé et installé Acrobat Reader gratuit d'Adobe.
L'étape 2 consiste à ajouter le contrôle à la boîte à outils VB.NET. Ouvrez VB.NET et démarrez une application Windows standard. (La "nouvelle génération" de présentation de Microsoft, WPF, ne fonctionne pas encore avec ce contrôle. Désolé!) Pour ce faire, cliquez avec le bouton droit sur un onglet (tel que "Contrôles communs") et sélectionnez "Choisir les éléments…" dans le menu contextuel qui apparaît. Sélectionnez l'onglet "Composants COM" et cochez la case en regard de "Adobe PDF Reader" et cliquez sur OK. Vous devriez pouvoir faire défiler la page jusqu'à l'onglet "Contrôles" dans la boîte à outils et y voir "Adobe PDF Reader"..
Maintenant, faites simplement glisser le contrôle vers votre formulaire Windows dans la fenêtre de conception et dimensionnez-le de manière appropriée. Pour cet exemple rapide, je ne vais pas ajouter d'autre logique, mais le contrôle a beaucoup de flexibilité que je vous dirai comment découvrir plus tard. Pour cet exemple, je vais simplement charger un simple PDF que j'ai créé dans Word 2007. Pour ce faire, ajoutez ce code à la procédure de chargement de formulaire:
Console.WriteLine (AxAcroPDF1.LoadFile (_
"C: \ Users \ Temp \ SamplePDF.pdf"))
Remplacez le chemin et le nom de fichier d'un fichier PDF sur votre propre ordinateur pour exécuter ce code. J'ai affiché le résultat de l'appel dans les fenêtres de sortie uniquement pour montrer comment cela fonctionne. Voici le résultat:
--------
Cliquez ici pour afficher l'illustration
Cliquez sur le bouton Retour de votre navigateur pour revenir
--------
Si vous souhaitez contrôler le Reader, il existe également des méthodes et des propriétés dans le contrôle. Mais les bons employés d'Adobe ont fait un meilleur travail que moi. Téléchargez le SDK Adobe Acrobat à partir de leur centre de développement (http://www.adobe.com/devnet/acrobat/). Le programme AcrobatActiveXVB dans le répertoire VBSamples du SDK vous montre comment naviguer dans un document, obtenir les numéros de version du logiciel Adobe que vous utilisez, et bien plus encore. Si vous n'avez pas installé le système Acrobat complet - qui doit être acheté auprès d'Adobe - vous ne pourrez pas exécuter d'autres exemples.