p
u
b
l
i
c
i
t
é
publicité
  1. #1
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    janvier 2010
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Conseil

    Informations forums :
    Inscription : janvier 2010
    Messages : 124
    Points : 225
    Points
    225

    Par défaut Impression et conversion PDF avec PDF Creator

    Bonjour,

    Suite à un fil de discussion sur le sujet sur ce forum, je vous propose une solution d'impression et de conversion de documents PDF à l'aide de PDF Creator
    Tout d'abord, le lien vers la discussion qui m'a amené à vous proposer d'ajouter ma pierre à l'édifice :
    http://www.developpez.net/forums/d86...mante-louvrir/

    Cet outil est un freeware, donc pas de souci de licence. Vous pouvez le télécharger ici :
    http://sourceforge.net/projects/pdfcreator/

    PDF Creator dispose d'une interface COM qui permet de le piloter intégralement, donc depuis WinDev ou WebDev, pas de soucis particulier

    Dans votre projet, vous devez commencer par déclarer les variables qui vous permettront d'instancier vos objets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    MonPDF est un objet OLE dynamique // Objet pilotant PDF Creator
    ErreurPDF est un objet OLE dynamique // Objet permettant de gérer les erreurs PDF Creator
    MesOptionsPDF est un objet OLE dynamique // Ojet permettant de piloter les options de PDF Creator
    DefaultPrinter est une chaîne
    Ensuite vous instanciez les objets nécessaires :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    SI PAS gbPdfCreatorDemarre ALORS
       //Allocation de l'objet PDFCreator : si il est déjà démarré, on l'utilise.
       MonPDF = ObjetActif("PDFCreator.clsPDFCreator")
       SI MonPDF=Null ALORS
          MonPDF=allouer un objet OLE "PDFCreator.clsPDFCreator" 
          ErreurPDF = ObjetActif("PDFCreator.clsPDFCreatorError") // On alloue un objet pour gérer les erreurs.
          MesOptionsPDF =ObjetActif("PDFCreator.clsPDFCreatorOptions") // On alloue un objet pour gérer les options.
          AutomationEvénement(Eve_PDFCreator_eReady,MonPDF,"eReady") // Les deux procédures de gestion des évenements PDFCreator. -eReady = Pret et dispo pour doc suivant 
          AutomationEvénement(Eve_PDFCreator_eError,MonPDF,"eError") // -eError = Probleme avec PDFCreator
       FIN
    FIN
    SI PAS MonPDF>>cProgramIsRunning ALORS
       SI MonPDF>>cStart("/NoProcessingAtStartup", Vrai) = Faux ALORS
          Erreur("Impossible d'initialiser PDFCreator.")
          RETOUR
       FIN
       gbPdfCreatorDemarre = Vrai
    SINON
       gbPdfCreatorDemarre = Vrai
    FIN
    Les différentes fonctions utilisées sont très bien décrites dans l'aide de PDF Creator, et tout fonctionne tres bien.
    ATTENTION : dans mon code, j'utilise deux méthodes AUTOMATIOnEvenement, ceci avec un résultat mitigé : la méthode Eve_PDFCreator_eReady est censé renvoyé vrai quand le traitement en cours est terminé, mais je n'ai pas réussi à la faire fonctionner correctement. il faudra creuser ce point. Je m'y pencherai dès que j'aurais un peu de temps.

    Ensuite il vous est possible de modifier différents parametres de PDF Creator, il y en a une quantité non négligeable, mais en gros, le principe est le meme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    MonPDF>>cVisible = Faux //Rend PDF Creator invisible
    MonPDF>>cOption("AutosaveFormat") = 0 //Format PDF
    MonPDF>>cOption("UseAutosave") = 1 //Sauvegarde automatique
    MonPDF>>cOption("UseAutosaveDirectory") = 1 //Utilisation du repertoire sauvegardé.
    MonPDF>>cDefaultprinter = "PDFCreator" //Affecte l'imprimante PDF comme imprimante par défaut
    MonPDF>>cClearCache
    Pour modifier l'imprimante en cours et la restaurer ensuite par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    DefaultPrinter=iInfoImprimante(Faux)
    iConfigure("PDFCreator",Faux)
    et à la fin du traitement, vous la restaurez.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MonPDF>>cDefaultprinter = DefaultPrinter
    Ensuite exemple de traitement fichier par fichier, mais vous pouvez aussi envoyer toute une liste de fichier en file d'attente...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    // Conversion PDF
    sNomCompletFichieraConvertir = sRepertoireNonPDFlocal+"\"+sNomCompletFichier
    SI PAS MonPDF>>cIsPrintable(sNomCompletFichieraConvertir) ALORS
       //Traitement erreur ....
    SINON
       MonPDF>>cPrinterStop = Faux
       MonPDF>>cOption("AutosaveDirectory") = sRepertoirePDFlocal
       MonPDF>>cOption("AutosaveFilename") = fExtraitChemin(sNomCompletFichieraConvertir,fFichier)
       MonPDF>>cPrintfile(sNomCompletFichieraConvertir)
    FIN
    cPrinterStop permet de suspendre ou non la file d'attente d'impression... si il est à vrai , vous "empilez" vos fichiers dans le spooler jusqu'à ce que vous repassiez à Faux cPrinterStop...

    Voila, il est bien entendu possible d'affiner encore, mais cette méthode fonctionne bien et est en production actuellement, sans probleme particulier. Je précise, dans mon cas, il s'agit de convertir différents types de documents en PDF et de les stocker dans un répertoire mais le principe est exactement le même pour imprimer des PDF...

    Voilà, en espérant vous avoir donné des pistes. J'ai utilisé cet outil après de nombreuses recherches sur les différents forums et pour rendre à César ce qui est à César , la base de ma procédure est largement inspirée d'un fil de discussion trouvé sur un forum. (je ferais une petite recherche pour faire apparaitre le nom de son auteur originel...)

    Je suis bien entendu à votre disposition pour toutes suggestions ou discussions, débats, critiques....

    Très cordialement,

    Laurent.

  2. #2
    Membre habitué
    Inscrit en
    août 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : août 2005
    Messages : 71
    Points : 107
    Points
    107

    Par défaut Classe Windev de gestion de PDFCreator (Interface COM)

    Bonjour,

    J'ajoute ci-joint ma petite contribution sous forme de classe Windev (testée et approuvée).

    L'appel se fait de cette façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    sFichierChemin est une chaîne = "c:\MonFichier.RTF"
    oPDFCreator est un Cla_PDFCreator
    oPDFCreator:ImpressionRapide(sFichierChemin,"c:\")
    Petit truc pour empêcher l'affichage de la fenêtre de mise à jour automatique, qui peut bloquer l'exécution de la conversion :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SI RegistreExiste("HKEY_CURRENT_USER\Software\PDFCreator\Program") ALORS
    	RegistreEcrit("HKEY_CURRENT_USER\Software\PDFCreator\Program","UpdateInterval",0)
    FIN
     
    SI RegistreExiste("HKEY_LOCAL_MACHINE\SOFTWARE\PDFCreator\Program") ALORS
    	RegistreEcrit("HKEY_LOCAL_MACHINE\SOFTWARE\PDFCreator\Program","UpdateInterval",0)
    FIN
    Images attachées Images attachées

  3. #3
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    janvier 2010
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Conseil

    Informations forums :
    Inscription : janvier 2010
    Messages : 124
    Points : 225
    Points
    225

    Par défaut Petit complément

    Bonjour,

    Tout d'abord, merci pour cette classe, qui peut être très utile
    Concernant l'exploitation de mon exemple, je tiens à préciser que cela ne fonctionne que si l'on installe pas PDFCreator en mode serveur. Toutes les commandes qui permettent de rediriger vers un répertoire différent ne sont plus utilisable dans ce cas.

    Voilà

    Cordialement,
    Laurent

  4. #4
    Invité de passage
    Inscrit en
    juin 2004
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : juin 2004
    Messages : 6
    Points : 2
    Points
    2

    Par défaut Merci à toi

    Merci à toi pour cette classe qui m'a tout simplement facilité la vie.
    Développement vôtre,

    Adrien.

  5. #5
    Membre Expert
    Homme Profil pro
    Inscrit en
    mars 2002
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : mars 2002
    Messages : 898
    Points : 1 064
    Points
    1 064

    Par défaut

    Heu...
    C'est possible d'envoyer un état vers cette classe ?
    Ou même simplement de paramétrer l'imprimante avec cette classe, puis lancer l'impression sur l'imprimante ?

    J'avoue que j'aimerai bien un petit guidage, car je suis un peu paumé...

  6. #6
    Invité de passage
    Inscrit en
    octobre 2010
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : octobre 2010
    Messages : 1
    Points : 1
    Points
    1

    Par défaut

    Bonjour à toutes et tous,

    ce code marche dans les versions de windev supérieure à 7.0.
    MAIS, j'ai encore une application en Windev 5.5 et là cela ne marche pas.
    En windev5.5 il n'existe pas d'impression en PDf natif , donc on est obliger de passer par une imprimante virtuelle tiers.
    En modifiant la base de registre on arrive à piloter pdfcreator (et a faire la même chose), mais passer par l'objet com c'est quand même mieux.

    Si qqu à une idée sur le sujet.

    merci.

  7. #7
    Invité de passage
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mars 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : mars 2013
    Messages : 1
    Points : 1
    Points
    1

    Par défaut Classe PDF

    Bonjour,

    Merci pour la classe.

    n'étant pas encore expérimenté dans ce domaine, cela m'a bien aidé à comprendre le fonctionnement.

  8. #8
    Invité de passage
    Homme Profil pro
    Développeur informatique
    Inscrit en
    novembre 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : novembre 2013
    Messages : 1
    Points : 0
    Points
    0

    Par défaut

    en conversion de fichier image (jpg, bmp) j'ai l'erreur suivante avec le mode debug de la classe :


    Cla_PDFCreator:isImprimable() : <\r><\n> (0)<\r><\n>

  9. #9
    Membre habitué
    Inscrit en
    août 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : août 2005
    Messages : 71
    Points : 107
    Points
    107

    Par défaut Sauvegarder un document vers le format PDF avec les fonctions OLE d'Open Office

    Voir aussi http://www.developpez.net/forums/d14...d-open-office/

    Pour convertir un document vers le format PDF avec les fonctions OLE d'Open Office.

  10. #10
    Community Manager

    Avatar de Lana.Bauer
    Femme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    novembre 2012
    Messages
    5 464
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : novembre 2012
    Messages : 5 464
    Points : 11 256
    Points
    11 256

    Par défaut

    Bonjour,

    Merci de vous conférer au post-it : A quoi sert ce forum ?

    Pourquoi ne pas s'aider ensemble pour rédiger un petit tutoriel sur ce sujet ?

    Merci à tous.

    Des volontaires ?
    Vous avez envie de contribuer au sein du Club Developpez.com ?

    Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
    Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
    Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, ...etc.
    Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.

  11. #11
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2010
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : janvier 2010
    Messages : 123
    Points : 67
    Points
    67

    Par défaut Avec la version 2 de PdfCreator il faut tout revoir

    Bonjour,

    Je ne développe pas avec WinDev mais je n'ai rien contre cette communauté de développeurs, j'étais à la recherche d'informations actualisées sur le composant COM de PdfCreator Version 2 lorsque j'ai trouvé cette discussion sur mon forum préféré.
    J'ai donc pensé qu'il pourrait être utile de prévenir que les classes et propriétés présentées dans cette discussion ont disparues dans la version 2.0 de PdfCreator.

    Sans doute plus riche, le nouveau modèle n'a plus rien à voir avec celui de la version 1.7.3 (dernière dont je dispose en V1).
    De plus, la documentation associée présente un objet PdfCreatorBeta dont on ne retrouve pas les mêmes propriétés lorsqu'on explore l'objet COM livré avec le téléchargement de la V2!
    A moins que je n'ai loupé quelque chose...?

    Si quelqu'un a trouvé une documentation correcte sur le composant COM de la version 2 ce serait sympa de nous proposer un lien.
    Accessoirement si quelqu'un peut fournir un lien de téléchargement de la Version 1 (histoire de maintenir les applications actuelles en attendant d'implémenter les objets de la V2).

    Je développe essentiellement en VBA et en VB.NET mais ça ne change rien aux caractéristiques du composant COM, enfin, je crois...

    Merci pour vos réponses.

  12. #12
    Invité de passage
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    janvier 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : janvier 2015
    Messages : 3
    Points : 1
    Points
    1

    Par défaut Insertion Auto

    Bonjour,

    Tout d'abord merci pour cette classe qui est vraiment bien utile =).

    Cependant lors d'une conversion de fichier txt il y a un ajout automatique du nom du fichier en haut de page et d'un texte "Pge p" en bas de page.

    Y'a t-il un moyen de ne pas avoir cet ajout de texte ?

    Merci d'avance

    Cordialement.

Discussions similaires

  1. transformation fichier PDF avec PDF CREATOR
    Par F@bien.fd dans le forum Langage
    Réponses: 1
    Dernier message: 10/09/2012, 08h34
  2. conversion HTML en PDf via PDf Creator
    Par Dan971 dans le forum C#
    Réponses: 1
    Dernier message: 19/12/2011, 22h57
  3. Créer un PDF avec PDF Creator ou Adobe Acrobat 8
    Par melouille56 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 30/07/2008, 11h46
  4. Conversion XML vers PDF avec ITEXT
    Par adelpiero dans le forum XML
    Réponses: 1
    Dernier message: 29/07/2008, 10h16
  5. Tutorial generation pdf , avec pdf creator
    Par Nicko29 dans le forum VBA Access
    Réponses: 1
    Dernier message: 07/07/2007, 21h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo