begin process at 2012 02 14 03:24:34
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Fichier / Disque

 > WSPDF - CLASSE DE GÉNÉRATION DE FICHIER PDF ( SANS OCX , NI IMPRIMANTE VIRTUELLE ) STYLE OBJET PRINTER

WSPDF - CLASSE DE GÉNÉRATION DE FICHIER PDF ( SANS OCX , NI IMPRIMANTE VIRTUELLE ) STYLE OBJET PRINTER


 Information sur la source

Note :
9,94 / 10 - par 17 personnes
9,94 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Fichier / Disque Classé sous :pdf, fichier, imprimante, writer, report Niveau :Initié Date de création :05/09/2004 Date de mise à jour :27/05/2006 21:06:43 Vu / téléchargé :23 974 / 6 435

Auteur : NeO78

Ecrire un message privé
Commentaire sur cette source (38)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Après des recherches infructueuses sur le net , sur du code VB permettant la génération de fichiers PDF - SANS OCX , SANS AUCUNE IMPRIMANTE VIRTUELLE ( style PDF Writer , Adobe Distiller ou CutePDF ) - , j'ai donc planché sur le codage d'une classe VB permettant de concevoir des fichiers PDF ( avec des méthodes et des propriétés comme pour l'objet Printer ) à partir des spécifications PDF de Adobe ( et ce ne fut pas facile , doc en anglais et étude technique vachement poussée ).

Et enfin , je vous livre ce travail après pas mal d'heures de codage ( et d'analyse )

Remarque : Je bosse actuellement sur un outil de conception de fichier PDF genre le générateur d'Etats de MsAccess

NB : concernant les images , seules les images au format jpeg sont gérées.
       La gestion des vignettes est en cours de conception.


 Conclusion

Le module ModTest.bas est un exemple de génération de fichier PDF.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  • Defaut.pdfTélécharger ce fichier [Réservé aux membres club]48 740 octets
  • ModTest.basTélécharger ce fichier [Réservé aux membres club]Voir ce fichier11 952 octets
  • MSSCCPRJ.SCCTélécharger ce fichier [Réservé aux membres club]190 octets
  • NeO78.jpgTélécharger ce fichier [Réservé aux membres club]Voir ce fichier10 972 octets
  • wsPDF.clsTélécharger ce fichier [Réservé aux membres club]Voir ce fichier95 732 octets
  • wsPDF.vbpTélécharger ce fichier [Réservé aux membres club]Voir ce fichier821 octets
  • wsPDF.vbwTélécharger ce fichier [Réservé aux membres club]Voir ce fichier60 octets
  •   Fonts
    • Courier.afmTélécharger ce fichier [Réservé aux membres club]15 677 octets
    • Courier-Bold.afmTélécharger ce fichier [Réservé aux membres club]15 675 octets
    • Courier-BoldOblique.afmTélécharger ce fichier [Réservé aux membres club]15 741 octets
    • Courier-Oblique.afmTélécharger ce fichier [Réservé aux membres club]15 783 octets
    • Helvetica.afmTélécharger ce fichier [Réservé aux membres club]77 343 octets
    • Helvetica-Bold.afmTélécharger ce fichier [Réservé aux membres club]72 096 octets
    • Helvetica-BoldOblique.afmTélécharger ce fichier [Réservé aux membres club]72 192 octets
    • Helvetica-Oblique.afmTélécharger ce fichier [Réservé aux membres club]77 443 octets
    • Symbol.afmTélécharger ce fichier [Réservé aux membres club]9 953 octets
    • Times-Bold.afmTélécharger ce fichier [Réservé aux membres club]66 839 octets
    • Times-BoldItalic.afmTélécharger ce fichier [Réservé aux membres club]62 026 octets
    • Times-Italic.afmTélécharger ce fichier [Réservé aux membres club]68 995 octets
    • Times-Roman.afmTélécharger ce fichier [Réservé aux membres club]62 879 octets
    • ZapfDingbats.afmTélécharger ce fichier [Réservé aux membres club]9 752 octets

Télécharger le zip


 Historique

05 septembre 2004 20:29:25 :
Pb de tag
05 septembre 2004 20:31:06 :
Titre de la source pas très explicit
06 septembre 2004 07:41:01 :
Petites erreurs dans 2 propriétés.
06 septembre 2004 11:23:48 :
Je me suis rendu compte qu'il y avait un pb de version du fichier modTest.bas , et voilà c'est rectifié.
07 septembre 2004 15:03:06 :
MAJ Commentaires
06 juillet 2005 16:39:57 :
J'ai modifié la méthode d'ajout d'image. De plus, j'ai rajouté : - 1 méthode : PDFInit qui permet de ré-initialiser toutes les variables internes au module de classe. - 2 fonctions : PDFImageWidth -> renvoi la largeur d'une image (en entrée : chemin du fichier jpg). PDFImageHeight -> renvoi la hauteur d'une image (en entrée : chemin du fichier jpg). La gestion des signets internes est toujours en cours d'élaboration. Pour info, je suis en train de bosser sur: - une implémentation XML XSLT XSL-FO (style fop en java pour ceux qui connaissent) de génération de fichier PDF. - des méthodes de générations de codes barres. - des méthodes de générations de courbes et de polygônes. - un designer de PDF. - un outil de génération de font pour ajout de font non gérée par la classe. POUR CES DIFFERENTS PROJETS , POUR CEUX QUI SONT INTERESSES POUR Y PARTICIPER VOUS POUVEZ ME CONTACTER PAR MESSAGE PRIVE.
08 juillet 2005 13:04:11 :
J'ai revu la façon donc j'écris dans le fichier de sortie. Je n'utilise plus l'ajout séquentielle mais la création ainsi que l'ajout dans le fichier par STREAM (utilisation de "scripting.filesystemobject" : création dynamique de la référence à l'objet). Je pense que cette méthode est la meilleur en terme d'optimisation.
08 juillet 2005 13:05:28 :
Oups , j'avais oublié de relivrer le zip.
12 juillet 2005 11:00:11 :
Pb détails
19 juillet 2005 22:52:52 :
Problème d'affichage de phrases avec des parenthèses corrigés
19 juillet 2005 23:01:48 :
Problème d'affichage de phrases avec des parenthèses corrigés
20 juillet 2005 14:53:41 :
Bug corrigé (phrase avec parenthèses)
25 juillet 2005 16:08:02 :
J'ai ajouté l'alignement "justifié" et la gestion des signets (outline)
26 juillet 2005 00:59:27 :
J'ai amélioré la méthode PDFCell, celle-ci gére maintenant les retours à la ligne automatique.
05 août 2005 22:38:06 :
Corrigé : Une petite erreur dans le code
05 août 2005 22:39:04 :
Oubli du zip lors de la dernière MAJ
05 août 2005 22:39:39 :
Encore zip oublié
30 mars 2006 09:34:25 :
Ajout de la gestion des signets et optimisation de la gestion des fonts (utilisation de fichiers afm)
27 mai 2006 21:06:43 :
sub PDFEndPage corrigée suite à une remarque de rafinenesse

 Sources du même auteur

Source avec Zip Source avec une capture ECBS CALCUL CLÉ RIB ET IBAN
Source avec Zip DÉCOUPEUR - RECONSTITUEUR DE FICHIERS
Source avec Zip OUTIL D'EXPLORATION DE BASE DE DONNÉES ACCESS
Source avec Zip ACTIVEX DE CONNEXION ET DECONNEXION RÉSEAU
Source avec Zip ACTIVEX D'ENVOI D'EMAILS PAR SMTP

 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) MODIFIER LES EXTENSION DES FICHIERS par okosa
ROUTINE DIR RÉCURSIVE POUR OBTENIR LA LISTE DE TOUS LES FICH... par kerisolde
Source avec Zip Source avec une capture FILE,SECURITY,FICHIER par okosa
Source avec Zip Source avec une capture Source .NET (Dotnet) PATCHEUR DE FICHIER par tototh
Source avec Zip Source avec une capture LECTURE DES INFORMATIONS DES DISQUES COMPOSANT UN ENSEMBLE R... par jack

 Sources en rapport avec celle ci

Source avec Zip Source .NET (Dotnet) DÉFRAGMENTER UN FICHIER par ShareVB
Source avec Zip Source .NET (Dotnet) MODIFIER LES EXTENSION DES FICHIERS par okosa
Source avec Zip Source avec une capture FILE,SECURITY,FICHIER par okosa
Source avec Zip Source avec une capture Source .NET (Dotnet) PATCHEUR DE FICHIER par tototh
Source avec Zip Source avec une capture IMPRIMER EN LIASSE par nobeal

Commentaires et avis

Commentaire de EBArtSoft le 05/09/2004 21:59:40 administrateur CS

Superbe !

Reste a faire l'interface pour conversion de doc genre html->pdf ou doc->pdf. Ou bien un simple editeur de texte.

Merci

@+

Commentaire de gwen49 le 05/09/2004 22:07:17

FANTASTIIIIIIQUE :-)
eh bin qui aurait cru qu'on aurai pu faire des trucs comme ça en VB!!! 1000/10!!!

Commentaire de SimonKari le 06/09/2004 00:47:53

Mais attention ! J'ai pas encore tous regarder avec attention  mais il y a des erreurs ...

Regardez par exemple la propriété : PDFGetLayoutMode, l'intérieur est erroné et ne peut donc pas fonctionner !

Je continue mon inspection ... Mais en tout cas c'est une très très bonne idée d'avoir fait ca !

Commentaire de Renfield le 06/09/2004 08:31:52 administrateur CS

ce genre de classe existe dans d'autres langages, comme pour le php, par exemple....

bonne source.

Commentaire de Sirocooo le 06/09/2004 09:42:44

C merche pas chez moi... sur PDFSetTextColor "cCyan" ca me dit "utilisation incorrecte de la propriété".
Si non ca a l'air balaise...

Commentaire de twacuria le 06/09/2004 11:53:16

Sur www.ppreview.net, tu peux trouver un ActiveX qui permet de remplacer l'objet Printer, faire du Preview, et sauver au format PDF avec tous les formats d'images, et encore bien plus.

Commentaire de pit1 le 06/09/2004 20:37:08

Pas mal la source, mais pourrais-tu expliquer le but du fichier gPDFFonts.ini?

Commentaire de SimonKari le 07/09/2004 01:44:06

Ô toi l'auteur de cette source, pourrais-tu m'expliquer ce que représente exactement le "Canvas" dans ta source ? J'ai un peu de mal à conceptualiser cette entité.

Merci

Commentaire de radcur le 07/09/2004 03:26:31

Salut,

c'est super!

Par contre, quand je l'execute à l'ouverture de Acrobat Reader il y a le msg Damaged file mais il réussi à l'ouvrir quand meme.

Commentaire de moustachu le 07/09/2004 09:24:14

Je n'ai pas encore testé mais ça a l'air grandiose ton truc ! Une conversion HTML>PDF serait assez pratique, dans le genre HTMLDOC.

++
Moustachu

Commentaire de cauroir le 07/09/2004 16:42:15

Bonjour,
Meme probleme que sirocooo dans une config vb6+sp6 sur windows 98. Sinon, la source me semble tres bien et bravo pour ce boulot

Commentaire de quiaimeflash le 21/09/2004 22:53:35

Waouu, c'est géniale...

Alors là !
C'est impressionnant...

Commentaire de maup le 29/09/2004 13:58:31

C'est vrai que c'est pas mal ! --> 10/10
;-))

Commentaire de gnarly le 21/10/2004 23:19:28

c'est trop fort ce que tu as fait la néo78
et c'est très bien fait, bravo !!
CHAPO

Commentaire de malbrouk le 11/03/2005 16:59:08

Super 10/10 !!!
il y a un bug si l'on veut imprimer deux images de suite
( j'ai adapté le code pour access 97 )

Commentaire de yan35 le 04/06/2005 15:44:28

Vraiment super ton code, je suis également en train d'écrire une classe de conversion en PDF qui corresponde à mes besoins sur une appli interne, je viens de découvrir ton code et m'en suis inspiré pour les images jpeg. Merci
J'ai des difficultés à incorporer des fonts particulières, pour des codes barres par exemple, j'ai d'ailleurs posé 1 question à ce sujet,
http://www.vbfrance.com/forum.v2.aspx?ID=475419&post=ok
Merci de ton aide éventuelle, et encore chapeau bas pour ton code.
Tu ne fais pas le bmp dans ton code ! je le fais, si ça t'interesse, mais je pense que tu préfèrerais le gif, ça je ne sais pas.

Commentaire de leteltel le 06/07/2005 15:38:52

Super source !!! félicitation

Commentaire de NoFutur le 12/07/2005 10:17:42

Bravo bravo pour cette source :o

J'étais également tombé sur une source similaire sur un site perso italien le gars proposé une class pour générer du PDF, je vais comparer les deux par curiosité :-)

En tous les cas encore bravo pour cette source !!!

Commentaire de dany108 le 16/08/2005 09:45:40

Bravo, très bonne source.
Je viens de mettre en application et je génère tous les jours un fichier pdf d'une trentaine de pages sans problèmes.
Seul petit soucis, à l'ouverture, Acrobat Reader me dit "Fichier endommagé", puis il l'ouvre quand même.

Commentaire de Paul52 le 18/08/2005 15:42:14

Dans le meme genre il y a aussi pdfcreatorlib :
http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=5588085e-3d0b-4db8-8a88-603ef212d0db
Marche avec le designer de visual studio(normalement mais je n'ai pas essayé)

Commentaire de zerozen le 17/11/2005 21:52:24

Salut,
Quand je lance ton programme, j'ai une erreur de compilation sur cette
ligne : sFilePath = Left(str_FileName, Len(str_FileName) - Len(Items(UBound(Items)))) de Property Let PDFFileName
Je débute dans VB, que dois je faire.
A++

Commentaire de lapinblanc le 13/12/2005 21:17:43

ZEROZEN : Il te suffit de retirer les références à photoshop8 pour que tout fonctionne bien...

C'est vraiment un beau boulot Ne078...

Bon courage pour la suite.

Commentaire de asem67 le 09/03/2006 23:46:22

c super coool merci
juste ce qu'il me falait
vivement le convertisseur multiformat
bon dev lol

Commentaire de jmc70 le 08/05/2006 18:51:02

Excellent travail. Je voulais réaliser un petit générateur de formulaires en RTF, finalement, je l'ai fait en PDF en bénéficiant ainsi de la garantie de la restitution.
Evidemment, ce n'est pas très rapide, mais c'est incroyable ce qu'on peut réaliser en VB !
Une petite remarque : j'ai mis un certain nombre de variables d'entrée en Byval plutôt qu'en Byref. Cela permet d'utiliser, si on le souhaite, des variables entières plutôt que doubles dans le programme appelant.
Et en plus un suivi du projet est assuré depuis plusieurs années. Cela mérite vraiment 10/10

Commentaire de rafinenesse le 11/05/2006 09:34:09

Bonjour,

Parfait le code, c'est ce que je cherchais mais il y a un petit soucis.
Lorsque je crée la 3ème page, rien ne s'affiche lors de la lecture du fichier PDF.  Quand je le parcours pas à pas je vois bien les données mais il n'écris rien dans le fichier.

J'utilise bien les fonctions Endpage et Newpage.

Peut-on m'aider?


Merci beaucoup.

Commentaire de elge10 le 11/05/2006 13:53:20

Bonjour,
ta source est super, chapeau bas pour ce travail, et le travail de recherche que ca demande. J'ai essayer de comprendre pourquoi Reader reconstruit le fichier a l'ouverture. Je conclu qu'il s'agit de l'ordre dans lequel les objets sont organisés dans le fichier. Pour analyser je demande une correction par l'outils PDFTK... Mais je n'est pas tout cerné...

En attendant bravo, et bonne continuation...

Commentaire de molo molo le 19/05/2006 11:35:12

Salut,

Super code. Merci beaucoup.
Pour supprimer les dépendances à trop de fichiers externes, j'ai supprimé le fichier gPDFFonts.ini.
Il est maintenant incorporé à un module .bas.

Yan35, si tu peux me donner le code pour coller un BMP à la place du JPEG, je suis preneur.
A+

Commentaire de msaidani le 16/06/2006 15:24:24

Petite question ?
Peut t on modifier un fichier .pdf existant en utilisant ton prog ?

THX

Commentaire de ramassis le 20/07/2006 17:41:30

Source très intéressante.

Par contre, je ne trouve pas le moyen de créer la table des matières à partir des signets que je définie.
D'autre part, je ne sais pas comment afficher le nombre total de pages sur chaque page pour parvenir au résultat suivant : page 1/3, page 2/3, page 3/3 (exemple avec trois pages).

En attendant, bonne suite.

Commentaire de Renfield le 28/09/2006 09:55:44 administrateur CS

Un de mes amis a intégré ta classe dans son projet...
Je me suis permis de corriger quelques points, et revois le design général de la classe.

j'avoue avoir du mal avec une property Get qui se nomme par exemple
PDFGetTextColor et son property Let PDFSetTextColor...
pourquoi ne pas la nommer simplement TextColor, dans les deux sens ? (voire meme PDFTextColor, a la limite...)

Commentaire de docsteff le 08/11/2006 17:30:53

La source est vraiment superbe
Cependant je souhaite ajouter une police de type Code Barre. Je travaille avec la police Code128.ttf. J'ai créé la police Code128.afm que j'ai ajouté dans le répertoire Font/. J'ai également modifié le code pour qu'il prennne en compte la nouvelle police. Lors de la création du fichier pdf, Acrobat me signale que la police n'est pas valide : "The font Code128 contains a bad /BBox".
J'ai essayé de modifier la balise BBox du fichier afm mais en vain.
Quelqu'un a-t-il une solution ?

Merci d'avance

Commentaire de VicoLaChips2 le 30/01/2007 17:59:48

Bonjour,
Je suis d'accord avec Renfield pour ce qui concerne le nommage des propriétés méthodes. Cette source est vraiment très bien ! malgré tout, la remaniant en ce moment dans le cadre d'un projet (en espérant que je puis - je ?) je ferais la remarque suivante :
Pour faire de la mise en forme on a souvent besoin de la méthode suivante : PDFGetStringWidth
Dans cette procédure on ouvre systématiquement un objet fso pour récuperer trois variables
iAscMax, iAscMin, ArrFNT(1 to 255) ce qui ralenti considérablement le traitement. En effet dans la mesure ou on ne change pas la FONT, ces valeurs n'ont pas besoin d'être récupérées si elle sont déclarés au niveau module...

En tout cas bravo pour ce source je met 10
@+, Vic.

Commentaire de Jielde le 09/03/2007 02:54:05

Merveilleuse source !

Par contre, la fonction PDFCell marche pas en UNIT_CM, le texte est de cet facon :

          T
          E
          S
          T

si vous avez une idée...

Commentaire de msteinbe1979 le 03/09/2007 13:39:30

Bonjour,
juste une petite question, lorsque j'ouvre le projet sous visual studio 2005, il reconnait un projet VB6, me fait une mise à niveau qui génère une tonne d'erreur du à la conversion.
Merci pour vos réponse.
Le programme a en tout cas l'air d'etre génial!!
Bonne journée

Commentaire de twin le 11/10/2007 15:27:27 10/10

Fantastique !

Je m'y colle de suite !

Commentaire de developpeurvb le 24/10/2007 15:21:08

Salut !
Tout d'abord bravo pour ton code, celui ci va m'aider pas mal, mais, j'ai un petit soucis, l'orsque je veux créer une nouvelle page a l'action PDFEndDoc, j'ai une erreur d'execution 9 'indice en dehor de la plage' dans la procedure 'PDFSetPages' ligne de code 'PageCanvasHeight(in_PagesNum) = PDFCanvasHeight(in_PagesNum)'
Aurais tu une idée a ce sujet.
Encore bravo pour cette realisation.

Commentaire de CharlEm le 02/01/2008 14:22:44 10/10

Génial, c'est exactement ce que je cherchais merci

Commentaire de bouv le 22/05/2008 14:00:43

Salut,

Tout d'abord merci pour ce très beau travail.

Je me suis lancé dans une conversion de cette class en .NET et comme le souligne renfield je me suis également permis de corriger quelques points :
- Suppression FSO
- Regroupement des propriétés PDFSetXXX / PDFGetXXX en PDFXXX
- Suppression de tout les variants
- ...

J'ai simplement une petite question. Il semble que les procédures PDFSetXref et PDFGetOffsetNumber ne soit pas appelées. Or elles sont de type privé. Peux-tu m'éclairer sur ce point.

Sinon je poste ça prochainement. avis aux interressés.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Cutepdf writer [ par T103 ] Bonjour a tous, voila j'utilise CutePdf writer pour generer mes docuements PDF, mais y a t il la possibilité au moment de l'affichage de  la boite de Parametrer une imprimante sous vab [ par Urakey ] Bonjour à tous,Je travaille actuellement sur un programme en VBA permettant de créer une page html et de la convertir en pdf via l'imprimante Adobe PD Imprimer un fichier pdf [ par maxkun ] Bonjour, j'aimerai savoir quel était le code pour imprimer un fichier pdf sur une imprimante donnée, sachant que l'imprimante sera dans une variable d Convertir fichier en PDF sans Imprimante virtuelle [ par bozzo ] Bonjour, Sachant que j'ai Acobat Writer sur mon poste, est-il possible de convertir un fichier en PDF sans avoir à déclarer une imprimante. En fait es Imprimer dans un fichier PDF [ par pfredin ] Bonjour, Sur mon poste, il y a Acrobat d'installé comme imprimante virtuelle pour créer des fichiers PDF. Dans Excel, j'aimerais automatiser la créa Probleme de conversion en pdf [ par egypto95 ] Bonjour à tous, Déja un grand merci aux développeurs, je suis un débutant j'ai déja trouver pas mal de réponse sur se site. Cependant j'ai un soucis, Comment ouvrire une fichier a partir de VB6? [ par alinedved ] comment ouvrire une fichier a partir de VB6. En faite je creé un manuel d'aide au format pdf et je veux qu'on je clique aide dans mon application le f fichier pdf [ par foufa2014 ] SALUT[^^clinoeil1],je veux générer un fichier pdf à partir d'une interface en vb.net. Quelqu'un peut m'aider SVP. Ouvrir un fichier pdf [ par tchaptcheut ] Bonjour à tous, J'ai une application sous vb6 et dans la barre des menus, j'ai un menu Help où en déroulant l'on pointe sur guide utilisateur pour ouv imprimer des fichiers pdf dans l'ordre [ par chaps25 ] bonjour, je débute en programmation et je rencontre un problème pour l'impression de fichier. Je suis en train de faire une application, en Visual B


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,061 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales