GÉNÉRER DES PDF AVEC DELPHI ET PDF CREATOR

hurrycane Messages postés 117 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 19 juin 2009 - 1 mai 2006 à 21:17
joc02 Messages postés 1 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 12 octobre 2012 - 12 oct. 2012 à 14:19
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/37353-generer-des-pdf-avec-delphi-et-pdf-creator

joc02 Messages postés 1 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 12 octobre 2012
12 oct. 2012 à 14:19
Moi j'aurais une question.

Comment peut-on rendre compatible notre code, indépendamment de la version de PDFCreator ?
Je m'explique, je dois faire un exe imprimant en PDF. Par contre pour des personnes qui ont des versions de PDFCreator différentes. Du coup j'ai codé avec ma version (pdfCreator 1.3.2) et lorsque je veux imprimer sur une machine avec pdfCreator 1.5.0, ça plante. L'enregistrement de la classe a échoué, le GUID n'est plus le même.

Doit-on inclure autant de TLB.pas que de version et d'aiguiller l'appli tant bien que mal ?

Merci pour vos lumières.
oberat Messages postés 2 Date d'inscription mardi 3 juillet 2012 Statut Membre Dernière intervention 28 août 2012
23 juil. 2012 à 12:01
Hello!
Heureusement que des tutos comme ça existe, c'est tellement galère de trouver de la doc sur PdfCreator, même 10 ans après!
Par contre, je serai un peu moins enjoué que kleptogeek concernant la qualité du code dans la fin du printit, j'avouerai que je ne saisi pas l'intérêt du booléen et l'utilisation du timer dans ce contexte et surtout de cette façon, m'enfin ça reste du pinaillage, et je ne vais pas cracher sur un exemple d'utilisation d'API ^^
Merci bien,
kleptogeek Messages postés 1 Date d'inscription samedi 15 janvier 2011 Statut Membre Dernière intervention 21 février 2011
21 févr. 2011 à 15:04
Très bon code. Pas un problème avec la version 0.9.1 de PDFcreator.

Merci beaucoup !
aurelioig Messages postés 1 Date d'inscription vendredi 3 septembre 2010 Statut Membre Dernière intervention 27 septembre 2010
27 sept. 2010 à 17:01
I solved the VBA_TLB issue, adding this code I found, just below "type"

// From Unit VBA_TLB

// *********************************************************************//
// Interface: _Collection
// Flags: (4432) Hidden Dual OleAutomation Dispatchable
// GUID: {A4C46780-499F-101B-BB78-00AA00383CBB}
// *********************************************************************//
_Collection = interface(IDispatch)
['{A4C46780-499F-101B-BB78-00AA00383CBB}']
function Item(var Index: OleVariant): OleVariant; safecall;
procedure Add(var Item: OleVariant; var Key: OleVariant; var Before: OleVariant;
var After: OleVariant); safecall;
function Count: Integer; safecall;
procedure Remove(var Index: OleVariant); safecall;
function _NewEnum: IUnknown; safecall;
end;

// *********************************************************************//
// DispIntf: _CollectionDisp
// Flags: (4432) Hidden Dual OleAutomation Dispatchable
// GUID: {A4C46780-499F-101B-BB78-00AA00383CBB}
// *********************************************************************//
_CollectionDisp = dispinterface
['{A4C46780-499F-101B-BB78-00AA00383CBB}']
function Item(var Index: OleVariant): OleVariant; dispid 0;
procedure Add(var Item: OleVariant; var Key: OleVariant; var Before: OleVariant;
var After: OleVariant); dispid 1;
function Count: Integer; dispid 2;
procedure Remove(var Index: OleVariant); dispid 3;
function _NewEnum: IUnknown; dispid -4;
end;
cs_couf Messages postés 213 Date d'inscription dimanche 5 janvier 2003 Statut Membre Dernière intervention 6 janvier 2011 1
3 mai 2010 à 10:21
Salut Grand maitre
Désolé de corriger mais PDFcréator n'est pas un FREEWARE mais un logiciel libre sous licence GPL. La différence est énorme.

Je ferme la parenthèse par PITIE pas de TROLL (merci d'avance)
ludokk Messages postés 10 Date d'inscription dimanche 8 novembre 2009 Statut Membre Dernière intervention 31 janvier 2010
31 janv. 2010 à 14:12
Excellent
walid_kerkoub2006 Messages postés 5 Date d'inscription samedi 12 août 2006 Statut Membre Dernière intervention 12 juillet 2009
12 juil. 2009 à 13:36
Bonjour, je n'arrive pas à compiler, j'ai le message d'erreur [Erreur fatale] UMainForm.pas(16): Fichier non trouvé : 'PDFCreator_TLB.dcu'.
J'utilise la version 7 de Delphi et la version 4.1 de PDFCreator.
Merci.
cs_greg778 Messages postés 1 Date d'inscription mercredi 7 avril 2004 Statut Membre Dernière intervention 22 juin 2009
22 juin 2009 à 10:01
Hello,
Je suis sous Delphi 7, PDF Creator 0.9.8 (la dernière) et j'ai un ptit soucis lorsque je fais "clsPDFCreator.cStart('/NoProcessingAtStartup', False);"
J'ai bien importé la librarie et créé l'unité "PDFCreator_TLB.pas"...

j'obtiens une erreur d'exception de classe EOleSysError (capture ici http://img29.imageshack.us/img29/1460/screenshot087v.jpg)
cette erreur me renvoie à la ligne "ConnectEvents(punk);
(capture ici http://img196.imageshack.us/img196/4290/screenshot085x.jpg)

J'ai déjà ouvert un post là http://www.developpez.net/forums/d763251/environnements-developpement/delphi/api-com-sdks/d7-piloter-pdfcreator/ mais apparemment ça marche chez les autres...
qlq à une idée ??

merci d'avance,
Greg
kamelhomme Messages postés 4 Date d'inscription dimanche 17 mai 2009 Statut Membre Dernière intervention 31 janvier 2010
6 mai 2009 à 16:16
salut tout le monde je souhaite générer un fichier pdf avec delphi ,mais j'ai rencontrer un problème concernant la langue arabe(cryptage des caractères )j'attends votre aides . merci
cs_Cissou79 Messages postés 1 Date d'inscription lundi 31 mars 2008 Statut Membre Dernière intervention 4 avril 2008
4 avril 2008 à 10:17
bonjour,

je souhaite imprimer des pdf à l'aide de PdfCreator. Par programmation, je souhaite indiquer le répertoire d'enregistrement ainsi que le nom du pdf à créer (j'utilise AutosaveDirectory et AutosaveFilename qui fonctionnent très bien dans mon programme).
Mon problème est que j'utilise comme reporter "Free report". Lorsque j'envoie mon fichier à l'impression il n'existe pas physiquement sur mon poste. Je ne peux donc pas utiliser PDFCreator.cPrintFile. Je lance mon impression à l'aide des commande de free report (PrintPreparedReport) en ayant au préalable sélectionné la bonne imprimante.
Y'a-t'il un moyen de savoir quand l'impression se termine ? Existe t'il une propriété de PdfCreator indiquant que l'imprimante est en cours d'utilisation?

Je vous remercie de vos réponses.
SuperExcitator Messages postés 1 Date d'inscription lundi 28 février 2005 Statut Membre Dernière intervention 12 septembre 2007
12 sept. 2007 à 17:18
Tout fonctionne parfaitement avec Delphi 7

Merci bien !
gandev Messages postés 1 Date d'inscription lundi 9 avril 2007 Statut Membre Dernière intervention 30 avril 2007
30 avril 2007 à 12:44
Bonjour,

Attention il ne faut pas utiliser PDFCreator_TLB.pas du code source qui est dans le zip !!!

Quelque soit la version de PDFCreator, il faut recréer l'unité
PDFCreator_TLB.pas à partir de Projet->Importer une bibiolthèque de types, cliquer sur Ajouter puis sélectionner
C:\Program Files\PDFCreator\PDFCreator.exe, cliquer sur créer unité, automatiquement l'unité PDFCreator_TLB.pas est créée dans
C:\Program Files\Borland\Delphi7\Imports.

Et la suite est connue. A vous de revoir.
cousingeoffrey Messages postés 9 Date d'inscription vendredi 23 février 2007 Statut Membre Dernière intervention 17 avril 2007
17 avril 2007 à 20:40
J'ai trouvé solution à mon problème. Pour ceux qui chercherai, il suffit de paramétres pdfcreator comme tu le fait mais d'utiliser PDFCretaor comme une imprimante.
cs_marabou Messages postés 15 Date d'inscription samedi 15 octobre 2005 Statut Membre Dernière intervention 17 avril 2007
17 avril 2007 à 18:36
tout simplement bravo
cousingeoffrey Messages postés 9 Date d'inscription vendredi 23 février 2007 Statut Membre Dernière intervention 17 avril 2007
14 mars 2007 à 14:20
Bonjour

Je sais que le sujet date un peu. Je souhaite utilisé pdf creator. Toi tu lui passe une fichier txt. Moi j'aimerai bien lui passer une image en bmp. mais je ne trouve pas. Serais-tu me guider ?
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
21 sept. 2006 à 23:14
Désolé pour cette réponse tardive.

Je dois avouer que je suis sur le point de jeter l'éponge avec cette nouvelle version estampillée 0.9.3.

D'une part, l'auteur annonce qu'il a fait des changements dans les interfaces COM (ce qu'il ne faut jamais faire !...mais bon, c'est fait par des programmeurs VB).

D'autre part, Delphi génére 98 messages d'avertissements à propos de non concordances de type dans les arguments passés aux getters et aux setters des différentes propriétés : du jamais vu !

Si l'application ne plante plus, en revanche, il n'y a plus moyen d'accéder au serveur COM par la méthode cStart qui renvoie touours faux alors que le serveur est bien lancé (voir liste des tâches actives).

Là, franchement, je n'en peux plus après trois heures à me demander si je savais encore utiliser un serveur COM hors processus.

J'ai essayé de charger le projet en C# dans C# Builder : impossible de compiler à cause de la DLL interop.vba.dll soit-disant incompatible !

Retenez moi, je vais craquer !

Bref, j'abandonne et j'attends une prochaine version.
Désolé, mais je crois qu'il faudra se rabattre sur une version 0.9.1 toujours disponible en téléchargement.

Bonne continuation. M'en vais prendre mes gouttes pour me calmer (lol).
Danfas Messages postés 3 Date d'inscription vendredi 25 juin 2004 Statut Membre Dernière intervention 16 novembre 2006
18 juil. 2006 à 23:49
Bonjour

J ai telechargé le zip en delphi. Je me dis que ca serait plus facile. Mais voila apres l'extraction, reglages des options, je me heurte a un petit mystère pour moi

en lancant le programme le curseur s arrete dans la ligne uses sur 'PDFCreator_TLB et j ai le message suivant.

[Erreur fatale] UMainForm.pas(16): Fichier non trouvé : 'PDFCreator_TLB.dcu'

Dans le repertoire pas de dcu.

Ou ai je loupé quelque chose ?
PastisOlive Messages postés 2 Date d'inscription lundi 17 juillet 2006 Statut Membre Dernière intervention 17 juillet 2006
17 juil. 2006 à 14:16
Salut,

J'ai pris la dernière version de PdfCreator (4.1) et du coup j'ai une exception 0x00.. au moment de l'appel à cStart(). Incompatibilité totale ?

Cdt,
Oliv
cs_Gecko62 Messages postés 25 Date d'inscription mardi 16 mars 2004 Statut Membre Dernière intervention 21 octobre 2012
8 mai 2006 à 22:40
Un grand merci pour cette source qui m'est très utile (je débute en programmation et il y a beaucoup de domaine ou mon ignorance est grande).
Et ce genre de source me simplifie grandement la tâche
Alors une fois encore merci
nou366 Messages postés 92 Date d'inscription samedi 21 janvier 2006 Statut Membre Dernière intervention 10 octobre 2010
8 mai 2006 à 20:09
Salut Delphiprog, tu mérite un énorme potou ...
tu m'enléve une grosse épine du pied, tu ne peux pas connaître ma joie ..
1000 fois merci
a+
Utilisateur anonyme
8 mai 2006 à 12:44
Delphiprog :je voulais justement importer la bibliothèque mais chez moi je n'ai que PDFCreator Version 3.0 et Version 3.1 et pas de Version 2.0.
Pourtant je l'ai téléchargé avec le lien que tu donnes plus haut.

Donc je me demandais si tu savais quelle version je dois utiliser où si je dois essayer tout simplement au pif :-)

@+
Cirec
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
7 mai 2006 à 17:08
Mise à jour du code source avec ajout d'une seconde application pour l'envoi par mail et la prévisualisation (cette dernière fonctionnalité nécessite Acrobat Reader installé sur votre machine).

A toi de jouer Nou366 !
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
3 mai 2006 à 23:56
Cirec : je suis désolé pour ce désagrément et je suis d'accord avec toi quand tu dis "la source devrait pouvoir être utilisé tel quel". Mais là, comme le code a été généré automatiquement pas Delphi, je n'ai pas vu arriver. J'étais plus occupé à trouver les bonnes classes/interfaces qu'à vérifier chaque ligne générée.

Si on regarde le début de PDFCreator_Tlb.pas, on peut effectivement constater une liste de dépendances (DepndLst):
// Bibl. types : C:\Program Files\PDFCreator\PDFCreator.exe (1)
// LIBID: {1CE9DC08-9FBC-45C6-8A7C-4FE1E208A613}
// LCID: 0
// Fichier d'aide :
// Chaîne d'aide :
// DepndLst:
// (1) v2.0 stdole, (C:\WINDOWS\system32\STDOLE2.TLB)
// (2) v6.0 VBA, (C:\WINDOWS\system32\msvbvm60.dll)
nou366 Messages postés 92 Date d'inscription samedi 21 janvier 2006 Statut Membre Dernière intervention 10 octobre 2010
2 mai 2006 à 15:43
Impeccable, génial, super etc....
10/10, bien sur !
Utilisateur anonyme
2 mai 2006 à 14:50
Salut,
alors j'ai un petit problème avec ce code :
j'ai essayé de l'utiliser tel quel (après installation de PDFCreator bien sur) mais l'unité PDFCreator_TLB fait référence à l'unité VBA_TLB que je ne trouve bien évidement pas.

Alors avant de faire des expériences en tous genres je voudrais savoir si tu sais a quoi correspond cette unité. Je sais que l'unité PDFCreator_TLB est généré automatiquement et que je peu la "recréer" mais comme la source devrait pouvoir être utilisé tel quel, je souhaiterais que tu m'éclaires un peut.

@+
Cirec
hurrycane Messages postés 117 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 19 juin 2009 1
2 mai 2006 à 14:26
eh ben c'est la premiere fois que jentend ca et comment on peut faire ca ?
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
1 mai 2006 à 22:36
Hurrycane, sais-tu que tu peux utiliser les alertes avec MSN Messenger et un compte Codes-Sources ?

Merci pour ton commentaire.
hurrycane Messages postés 117 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 19 juin 2009 1
1 mai 2006 à 21:17
comment tu fait pour poster des sources claires et utiles , intéressantes et la ou lon sattendait le moins !
je vais mettre au point un script qui permettra de detecter ta presence sur delphifr et de lancer une alerte , il sera parametrable ainsi il me dira si tas poster une source ou non etc !
lollllllllllllllllllll
trop top ta source ! 10/10 et aussi complete et bien commentée rereremerci delphiprog !!!!
Rejoignez-nous