Openpdf.net


Description

Après de longues recherches infructueuses pour trouver une classe de génération de fichier PDF en VB.NET, je me suis rappelé de la source de NeO78 rédigée en VB6.

Je me suis donc lancé dans la conversion de sa classe.

J'ai d'abord essayé l'assistant de conversion fourni avec VB.NET, mais je me suis retrouvé avec un trop grand nombre d'erreur. Je me suis donc lancé dans une traduction ligne à ligne.

J'en ai profité pour apporter quelques améliorations :

- Suppression de tous les types Variant (Object en .NET).

- Renommage de certaine variables de façon plus explicite (il en reste en encore pas mal à voir).

- Regroupement de certaines propriétés (ex : PDFSetZoomMode et PDFGetZoomMode sont devenus PDFZoomMode)

- Amélioration de la gestion des couleurs. Remplacement de l'Enum PDFColorValue par System.Drawing.Color pour un plus grand choix de couleur disponible. Cela simplifie au passage la récupération des valeurs RGB (merci .NET)

- Suppression des certaines variables inutilisées.

- Suppression de l'objet FSO pour la lecture et l'écriture des fichiers et remplacement par FileOpen...

- Intégration des Fonts AFM en resource. Il n'est plus nécessaire de les distribuer. La lecture se fait directement depuis les resources.

- Optimisation de la lecture des Fonts.
Auparavant la fonction PDFGetStringWidth ouvrait systématiquement un objet FSO pour lire le conetnu des polices.
Désormais, les polices sont lues une fois pour toutes et les informations nécessaires sont mémorisées.

- Et encore quelques petits détails.

Au final, le code est beaucoup plus rapide, notamment grace a la suppression de FSO et à l'optimisation de la lecture des Fonts.

J'ai laissé le module exemple d'origine (simplement adapté à la modification de la classe).

Conclusion :


Merci à Neo78 pour sa classe d'origine et qui s'est tapé toute la doc PDF en anglais.

PS : Sa source est disponible à l'adresse suivante :

http://www.vbfrance.com/codes/WSPDF-CLASSE-GENERATION-FICHIER-PDF-SANS-OCX-NI_25958.aspx

Codes Sources

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.