Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

OPENPDF.NET


Information sur la source

Catégorie :Divers Source .NET ( DotNet ) Classé sous : PDF, CLASSE, GENERATION, SANS DLL, SANS OCX Niveau : Débutant Date de création : 23/05/2008 Date de mise à jour : 06/06/2008 13:56:41 Vu / téléchargé: 5 091 / 534

Note :
9 / 10 - par 2 personnes
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (16)
Ajouter un commentaire et/ou une note


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
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

26 mai 2008 15:25:04 :
Ajout d'image depuis la propriété image
26 mai 2008 15:29:47 :
Erreur zip
06 juin 2008 13:56:42 :
Amélioration de l'ajout d'image

Commentaires et avis

signaler à un administrateur
Commentaire de Renfield le 23/05/2008 11:27:30 administrateur CS

du bon boulot, bien joue mister

signaler à un administrateur
Commentaire de bouv le 23/05/2008 11:35:28

Merci pour le compliment.

Il reste cependant pas mal de choses à optimiser.

J'aimerais notamment implementer l'ajout d'image à partir d'une PictureBox avec consersion en JPG à la volée afin ne pas avoir à créé le fichier JPG sur le HD pour le supprimer ensuite.

Mais je sais pas trop par quel bout le prendre. Une idée ?

signaler à un administrateur
Commentaire de Renfield le 23/05/2008 11:39:20 administrateur CS

pour la conversion ? la classe Graphics gère cela au poil.

signaler à un administrateur
Commentaire de bouv le 23/05/2008 14:50:51

Je trouve pas comment faire sans passer par un fichier :-(

Dois-je passer par un Stream ? Si oui comment ? Dois-je le convertir en JPG avant ou après récupération ?

signaler à un administrateur
Commentaire de Renfield le 23/05/2008 14:57:52 administrateur CS

un stream, oui, ca sait faire

signaler à un administrateur
Commentaire de forchi le 24/05/2008 10:51:38 9/10

Bravo source super intéressante.
Le seul problème que j'ai rencontré et que lorsque je veux ouvrir un fichier pdf existant, il me l'ouvre avec mon logiciel par défaut.
Sinon bien, je t'ai mis un 9/10.
A+

signaler à un administrateur
Commentaire de bouv le 26/05/2008 15:41:20

Code MAJ,

On peut désormais ajouter un PDF depuis la class Image. Je suis passé par un MemoryStream.

'Pour ajouter depuis un fichier
PDFImage "CheminDuFichier.jpg"

'Exemple pour ajouter depuis la class image
PDFImage MaPictureBox.Image

Pour info, cette modification à eu quelques répercussions sur PDFParseJPG notamment.

J'en ai profité pour :

- Renommer les variables de la structure aIMG (in_1, in_2, in3... n'étaient pas très compréhensible)

- Modifier les fonctions PDFImageWidth et PDFimageHeight. A chaque fois que l'une d'elle était appelée, l'image était mémorisée dans un tableau. Désormais on renvoi la valeur souhaitée et on vide les données.

Bonne prog
++

signaler à un administrateur
Commentaire de bouv le 06/06/2008 14:03:07

Nouvelle MAJ concernant l'ajout d'image.
Que ce soit depuis un fichier ou depuis la class Image.

Le code devrait être encore un peu plus rapide, surtout avec les grosses images.

Mon PC est assez puissant, mais je me suis rendu compte que sur les PC plus humbles le temps d'ajout d'une image >= 300PPP pouvait devenir rédhibitoire.

C'est maintenant résolu.

signaler à un administrateur
Commentaire de speyrard le 02/09/2008 15:28:37 9/10

Trés bonne source et trés utile

signaler à un administrateur
Commentaire de edethacom le 24/09/2008 04:48:31

Tres bonne source, je n'aurai pas a lire un livre sur itextsharp pour creer un pdf.

Qui ne trouve pas, n'a pas cherche!!!!!


thanks a lot

signaler à un administrateur
Commentaire de YI013587 le 10/10/2008 12:01:49

Bonjour bouv.

Merci pour ce travail remarquable.

Je voudrais utiliser d'autres polices, par exemple la police Arial. J'ai vu que toutes les polices étaient décrites dans tes "Resources". Comment trouver la "Valeur" à inscrire en regard du nom de la police que j'ajoute ?

Merci d'avance,
Gilbert

signaler à un administrateur
Commentaire de Sparknet le 26/11/2008 02:09:25

Bonjour, BOUV

trés bon travail en effet,

Mais comme YI013587, J aurais aimé savoir comment peut-on ajouter de nouvelle police.

Merci,

signaler à un administrateur
Commentaire de bouv le 26/11/2008 08:18:14

Salut,
Désolé pour YI013587, j'ai zapper sa question, je réponds donc à vous deux en même temps.

La police doit être au format AFM (Adobe Font Metrics) ou ATM (Adobe Type Manager). Dans mon exemple seules des polices de type AFM sont fournies.
Pour en ajouter de nouvelles, il faut :
- en trouver sur le net et les télécharger
- les ajouter en ressource
- adapter la partie du code qui y fait appel

Si vous avez des fichiers AFM ou ATM sous la main, je peux éventuellement faire la MAJ du code afin que tout le monde en bénéficie. Dans ce cas envoyez moi un MP pour obtenir mon adresse email.

Bonne prog
++

signaler à un administrateur
Commentaire de aymeric53 le 23/12/2008 17:29:12

Salut,
Trés bon travail !!!

J'ai juste une petite question,
comment puis je utiliser cette source sur visual studio 2005.

La ligne My.Resources.LoadResString(...) ne passe pas.
Comment intégrer les ressources?

Merci d'avance
++

signaler à un administrateur
Commentaire de bouv le 23/12/2008 21:26:13

Salut,
La source a été développée avec VB 2008 Express.
Je ne sais pas si elle fonctionnera en VB 2005.
Tu peux cependant télécharger gratuitement la version VB 2008 Express.

Bonne prog
++

signaler à un administrateur
Commentaire de Sparknet le 24/12/2008 12:44:05

Salut à vous,

aymeric53, essais avec:
My.Resources.ResourceManager.GetString(...)

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

generation automatique de fichiers pdf sous VBA [ par yalka ] COMMENT ON PEUT CREER AUTOMATIQUEMENT UN FICHIER PDF ?COMMENT EXPORTER AUTOMATIQUEMENT PLUSIEURS ETATS EN FORMAT PDF.COMMENT CONCATENER LE CONTENU DE Generation auto / Creation PDF sous Access [ par BUZZ2K ] Bonjour,Après de longue recherches sur le net et sur VBFrance, je me permet de poster afin de peut être enfin trovuer de l'aide.J'ai dévellopé une app Generation / Creation PDF sous Access [ par BUZZ2K ] Bonjour,Après de longue recherches sur le net et sur VBFrance, je me permet de poster afin de peut être enfin trovuer de l'aide.J'ai dévellopé une app Classe perso dans un PropertyGrid [ par Kevin.Ory ] Bonjour,J'ai un petit problème dans l'utilisation d'une PropertyGrid. Lorsque on y affiche une classe (créé nous-même dans le code) ayant comme propri excel et pdf [ par pappyted ] Bonjour je suis débutant en Visual Basic et j'ai un petit soucis.J'ai une feuille excel que je renseigne et je voudrais pouvoir créer un pdf automatiq Class Evenement instancier [ par carvals ] Bonjour,Question surement debile mais bon....J'ai un lecteur connecter a de l'usb.Une dll en csharp pour discuter avecUn prog Vb.NETDans ce prog J'ai utilisation des pdf et visual basic [ par pappyted ] Bonjour tout le monde,comme vous vous en doutez j'ai un problème avec visual basic.Voilà je souhaite ouvrir un pdf avec visual basic et aller écrire d Ouvrir un fichier pdf [ par filotto ] Salut à tousJ'aimerais savoir comment Ouvrir un fichier pdf dans une listview.Merci de votre reponse.Cordialement.Gérard FILOTTO douchette + connexion AS/400 + PDF =Infos DVD ou article [ par angeldu74 ] Bonjour.Je suis débutant en VB.Net. Mais je me suis fixé un petit projet sympa pour commencer qui me servira surement plus tard.En fait je vais me ser sourcecontrol sur un objet créé [ par Finality ] Bonjour,dans une de mes applications, j'ai créé une classe "dossier", hérité de la classe "Picture Box". Aux propriétés de la picture boc, j'en ai raj


Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 2,215 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.