| |
Posté le 22 décembre 2022 - 11:58 |
Bonjour,
Je génère un fichier word en remplaçant des variables, tout fonctionne pas de soucis. A la fin de la génération du fichier Word je l'ouvre pour que l'utilisateur puisse néanmoins le compléter / modifier.
Une fois qu'il le ferme je souhaite le générer et l'enregistrer au format PDF pour plus tard l'envoyer par email. En utilisant DocVersPDF cela ne respecte pas l'affichage de mon word (j'ai des petites cases à cocher qui sont remplacés par des points d'interrogation.
Par contre en "grugeant" et en faisant une impression PDF cela fonctionne, cependant cela demande à l'utilisateur de choisir où l'enregistrer et de le nommer correctement.
MonDoc est un Document = "c:\temp\GenerationBE.docx"
POUR TOUT T_VAR_COURRIER tabFragments est un tableau de docFragments = MonDoc.Recherche(T_TABLE.VC_NOMVAR)
SELON T_VAR_COURRIER.VC_TYPE CAS "VAR_CODE" sValeurARemplacer = ExécuteCode(T_TABLE.VC_VALEUR) CAS "VAR_INDIRECTION" sValeurARemplacer = SansEspace({T_TABLE.VC_VALEUR}) AUTRE CAS FIN POUR TOUT f de tabFragments f.Texte = sValeurARemplacer FIN FIN MonNomDeDoc est une chaîne = "A"+numOffreAt+" - " + SansEspace(Table.Imma) + " - BE + FD + " + AnnéeEnCours() + " .docx" sMonNomDeDocSansExtension est une chaîne = "A"+numOffreA+" - " + SansEspace(Table.Imma) + " - BE + FD + " + AnnéeEnCours() MonDoc.Sauve("c:\temp\"+ MonNomDeDoc)
MonDoc.Ferme()
LanceAppliAssociée("c:\temp\"+ MonNomDeDoc)
SI OuiNon("Voulez vous faire partir le document par email à l'enleveur") = Oui ALORS
SI iConfigure("Microsoft Print to PDF") = Vrai ALORS iImprimeDoc("c:\temp\"+MonNomDeDoc) iFinImprime() Email.Expéditeur = "monemail" Email.AdresseExpéditeur = "monemail" Email.Destinataire[1] = "monemail2" Email.NbDestinataire = 1 Email.Sujet = "Sujet du message" Email.Message = "Texte du message" Email.Attache[1] = "c:\temp\DocPDF.pdf" Email.NbAttache = 1 Email.AccuséRéception = Vrai EmailLanceAppli() FIN |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 891 messages Popularité : +227 (347 votes) |
|
Posté le 22 décembre 2022 - 14:39 |
Bonjour,
...
iDestination(iPDFGénérique,saCheminPDF) iImprimeDoc(saCheminDoc)
...
qui reprend directement ton traitement, devrait fonctionner. Dans ton cas, on peut même pousser le vice jusque
...
iParamètreExport(...
iDestination(iEmailPDF,saCheminPDF) iImprimeDoc(saCheminDoc)
Dans les deux cas, LanceAppliAssociée devient inutile
-- Il y a peut être plus simple, mais, ça tourneMessage modifié, 22 décembre 2022 - 14:49 |
| |
| |
| | | |
|
| | |
| |
Posté le 02 janvier 2023 - 18:13 |
Pardon je n'ai pas eu la notification de réponse ...
le iImprimeDoc permet d'imprimer un doc au format docx c'est pour ça que je ne l'avais pas utilisé...
Là en l'utilisant le format de mon fichier n'est pas correct, cela m'interprète des cases à cocher en point d'interrogation :
J'ai peut être mal codé, comme le iImprimeDoc permet d'imprimer un docx j'ai demandé l'impression du docx ... :
MonNomDeDoc est une chaîne = "A"+numOffreA+" - " + SansEspace(Table.Imma) + " - BE + FD + " + AnnéeEnCours() + " .docx" sMonNomDeDocSansExtension est une chaîne = "A"+numOffreA+" - " + SansEspace(Table.Imma) + " - BE + FD + " + AnnéeEnCours() MonDoc.Sauve("c:\temp\"+ MonNomDeDoc)
MonDoc.Ferme()
LanceAppliAssociée("c:\temp\"+ MonNomDeDoc)
SI OuiNon("Voulez vous faire partir le document par email à l'enleveur") = Oui ALORS
iDestination(iPDFGénérique,"c:\temp\"+sMonNomDeDocSansExtension) iImprimeDoc(MonDoc)
Est ce que c'est ce que tu pensais ? |
| |
| |
| | | |
|
| | |
| |
Posté le 03 janvier 2023 - 09:19 |
Mauvais code pardon voici celui testé :
iDestination(iPDFGénérique,"c:\temp\"+sMonNomDeDocSansExtension) iImprimeDoc("c:\temp\"+MonNomDeDoc) |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 891 messages Popularité : +227 (347 votes) |
|
Posté le 03 janvier 2023 - 11:27 |
Julie a écrit :
Est ce que c'est ce que tu pensais ?
Exactement, c'est d'ailleurs le code que j'avais fourni
-- Il y a peut être plus simple, mais, ça tourne |
| |
| |
| | | |
|
| | |
| |
Posté le 03 janvier 2023 - 11:42 |
Zut... cela ne me garde pas le format correctement ... et me transforme les cases à cocher en point d'interrogation ... je vais chercher encore comment je peux adapter ma solution sans demander à l'utilisateur ou sauvegarder le doc. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 891 messages Popularité : +227 (347 votes) |
|
Posté le 03 janvier 2023 - 13:55 |
1-Cela ne viendrait-il pas d'un problème UNICODE/ANSI ? (à modifier dans configuration courante) Les cases à cocher sont des caractères UNICODE (U10102, U25A1 entre autre) 2-Que donne l'impression sur une imprimante (via idestination)
-- Il y a peut être plus simple, mais, ça tourneMessage modifié, 03 janvier 2023 - 14:10 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 891 messages Popularité : +227 (347 votes) |
|
Posté le 03 janvier 2023 - 15:17 |
3-Les cases à cocher ne seraient-elles pas des champs ?
-- Il y a peut être plus simple, mais, ça tourne |
| |
| |
| | | |
|
| | |
| |
Posté le 03 janvier 2023 - 17:21 |
Alors si je passe en unicode, cela ne change rien (j'étais en ANSI) :
Je suis donc repassée en ANSI.
J'ai tenté l'impression en direct sur l'imprimante et cela fonctionne par contre. |
| |
| |
| | | |
|
| | |
| |
Posté le 03 janvier 2023 - 17:27 |
Non ce ne sont pas des champs, ce sont des cases à cocher dans un modèle de fichier word |
| |
| |
| | | |
|
| | |
| |
Posté le 03 janvier 2023 - 17:32 |
J'ai également essayé en utilisant le pdfParamètre mais sans succès non plus :
params est un pdfParamètre params.Unicode = Vrai iParamètrePDF(params) iDestination(iPDFGénérique,"c:\temp\"+sMonNomDeDocSansExtension) iImprimeDoc("c:\temp\"+MonNomDeDoc) |
| |
| |
| | | |
|
| | |
| |
Posté le 03 janvier 2023 - 17:40 |
Et j'ai également testé avec le DocVersPDF sans succès non plus :
d is Document = "c:\temp\"+ MonNomDeDoc SI DocVersPDF(d, "c:\temp\" + [fSep] + "MonDoc.pdf")ALORS Info("Document converti en PDF") FIN |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 891 messages Popularité : +227 (347 votes) |
|
Posté le 04 janvier 2023 - 06:52 |
Julie a écrit :
Non ce ne sont pas des champs, ce sont des cases à cocher dans un modèle de fichier word
Il est possible que ces caractères soient dans la police "Winding". La conversion en PDF de cette police pose parfois des problèmes. Essaye de passer en "Segoe UI Symbol" Dans le pire des cas il va falloir passer par un objet automation
-- Il y a peut être plus simple, mais, ça tourneMessage modifié, 04 janvier 2023 - 06:57 |
| |
| |
| | | |
|
| | |
| |
Posté le 05 janvier 2023 - 12:05 |
Alors non ce n'était pas une police bizarre mais certainement un caractère de la table de caractère, je l'ai remplacé de partout par des "o" et du coup cela fonctionne ... c'est peu protocolaire mais le rendu est bien
Merci pour ton aide |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 159 messages Popularité : +0 (2 votes) |
|
Posté le 05 janvier 2023 - 17:01 |
Bonjour,
Et en utilisant l'impression pdf microsoft cela donne quoi ? |
| |
| |
| | | |
|
| | |
| |
Posté le 10 janvier 2023 - 17:49 |
Bonjour,
C'était pareil, cela me remplaçait les cases à cocher par des ? |
| |
| |
| | | |
|
| | |