excel + PdfTK + fichier ".bat" = peut être ma solution ...

4 réponses
Avatar
Alfred WALLACE
Bonjour,
il y a quelques semaines, j'=E9tais venu consulter
les "oracles" et autres gurus bienveillants , mais,
sans solutions possibles...
d=E9puis j'ai continuer =E0 chercher, et je revien avec
un d=E9but de solution, mais sans pouvoir la m=EAtre en oeuvre
car je ne sais pas faire certaines choses.....

le probl=E8me :
j'ai un documents (de X pages) que je veux imprimer
en Y exemplaires (un exemplaire par responsable).
Je voulais inserer en filigrane le nom de chaque responsable
pour chaque pages de chaque exemplaire.

j'ai trouv=E9 l'outil PDFtK (http://www.pdflabs.com/docs/pdftk-man-
page/)
en licence libre (GPL) qui permet par ligne
de commande, d'inserer =E0 un document en PDF, un
filigrane, issu d'un autre document pdf.

exemple en ligne de commande, si je tape

pdftk document.pdf stamp filigrane.pdf output resultat.pdf


en resultat j'aurai le filigrane dans le fichier "resultat.pdf"

ce que j'aimerai donc faire, c'est cr=E9er un fichier batch
dont "document.pdf" est en A1
et ensuite =E0 partir de A2 j'ai une serie de noms
repr=E9sentant les filigranes.

le fichier bat devrait ressembler =E0 =E7=E0

pdftk document.pdf stamp toto.pdf output resultat-toto.pdf
pdftk document.pdf stamp tutu.pdf output resultat-tutu.pdf
pdftk document.pdf stamp titi.pdf output resultat-titi.pdf
pdftk document.pdf stamp tata.pdf output resultat-tata.pdf

il me suffit ensuite de lancer le batch, et le tour est jou=E9 !

Pourriez vous m'aider =E0 cr=E9er ce fichier texte batch ?

Merci beaucoup.

Jos=E9

4 réponses

Avatar
Jacquouille
Bonjour Alfred

Je suis totalement incapable de répondre à ton problème, mais, s'il n'y a
pas trop de responsables (in fine = nb d'exemplaires), tu pourrais faire un
exemplaire à la fois, en mettant le nom du responsable en en-tête ou en bas
de page .....

Jacquouille, la débrouille ....-)

" Le vin est au repas ce que le parfum est à la femme."


"Alfred WALLACE" a écrit dans le message de groupe de discussion :


Bonjour,

le problème :
j'ai un documents (de X pages) que je veux imprimer
en Y exemplaires (un exemplaire par responsable).
Je voulais inserer en filigrane le nom de chaque responsable
pour chaque pages de chaque exemplaire.
Avatar
Alfred WALLACE
Bonsoir Jacquouille !

ben en fait, mon problème se résume a faire créer
un fichier texte à excel et à enregistrer dans ce
fichier texte les valeurs :

pdftk document.pdf stamp toto.pdf output resultat-toto.pdf
pdftk document.pdf stamp tutu.pdf output resultat-tutu.pdf
pdftk document.pdf stamp titi.pdf output resultat-titi.pdf
pdftk document.pdf stamp tata.pdf output resultat-tata.pdf

puis fermer ce fichier et le renommer en ".bat" pour pouvoir le
lancer.

en gros c'est ce que je veux faire.

Merci en tout cas pour ta réponse.

José





On 9 juin, 15:34, "Jacquouille" wrote:
Bonjour Alfred

Je suis totalement incapable de répondre à ton problème, mais, s'il n'y a
pas trop de responsables (in fine = nb d'exemplaires), tu pourrais fair e un
exemplaire à la fois, en mettant le nom du responsable en en-tête ou en bas
de page .....

Jacquouille, la débrouille ....-)

" Le vin est au repas ce que le parfum est à la femme."

"Alfred WALLACE"  a écrit dans le message de groupe de discussion :


Bonjour,

le problème :
j'ai un documents (de X pages) que je veux imprimer
en Y exemplaires (un exemplaire par responsable).
Je voulais inserer en filigrane le nom de chaque responsable
pour chaque pages de chaque exemplaire.
Avatar
ThierryP
Bonsoir José,

Quelque chose comme ça devrait faire l'affaire :
Sub test()
Num = FreeFile
fichier = ActiveWorkbook.Path & "Batch du " & _
Format(Date, "dd-mm-yy") & " " & Format(Time, "hh-mm-ss") & ".bat"
Open fichier For Append As #Num
Nom_doc = [A1]
Range("A2").Select
While ActiveCell <> ""
data = "pdftk " & [A1] & " stamp " & ActiveCell & ".pdf output
resultat_" & ActiveCell & ".pdf"
Print #Num, data
ActiveCell.Offset(1, 0).Select
Wend
Close #Num
End Sub

Tu devrais également pouvoir le faire directement en VBA en utilisant
la commande "Shell" : shell(data). Il faudra peut-être que tu donnes
les chemins complets du logiciel et des arguments mais ça doit se
faire !

ThierryP

On 9 juin, 12:48, Alfred WALLACE wrote:
Bonjour,
il y a quelques semaines, j'étais venu consulter
les "oracles" et autres gurus bienveillants , mais,
sans solutions possibles...
dépuis j'ai continuer à chercher, et je revien avec
un début de solution, mais sans pouvoir la mêtre en oeuvre
car je ne sais pas faire certaines choses.....

le problème :
j'ai un documents (de X pages) que je veux imprimer
en Y exemplaires (un exemplaire par responsable).
Je voulais inserer en filigrane le nom de chaque responsable
pour chaque pages de chaque exemplaire.

j'ai trouvé l'outil PDFtK (http://www.pdflabs.com/docs/pdftk-man-
page/)
en licence libre (GPL) qui permet par ligne
de commande, d'inserer à un document en PDF, un
filigrane, issu d'un autre document pdf.

exemple en ligne de commande, si je tape

pdftk document.pdf stamp filigrane.pdf output resultat.pdf

en resultat j'aurai le filigrane dans le fichier "resultat.pdf"

ce que j'aimerai donc faire, c'est créer un fichier batch
dont "document.pdf" est en A1
et ensuite à partir de A2 j'ai une serie de noms
représentant les filigranes.

le fichier bat devrait ressembler à çà

pdftk document.pdf stamp toto.pdf output resultat-toto.pdf
pdftk document.pdf stamp tutu.pdf output resultat-tutu.pdf
pdftk document.pdf stamp titi.pdf output resultat-titi.pdf
pdftk document.pdf stamp tata.pdf output resultat-tata.pdf

il me suffit ensuite de lancer le batch, et le tour est joué !

Pourriez vous m'aider à créer ce fichier texte batch ?

Merci beaucoup.

José
Avatar
Alfred WALLACE
Bonjour ThierryP,
je suis vraiment désolé, j'ai oublié de te remercier
pour tes explications/code !

Je vais tester avec d'ailleurs plutot la solution shell.

merci beaucoup

José





On 9 juin, 17:57, ThierryP wrote:
Bonsoir José,

Quelque chose comme ça devrait faire l'affaire :
Sub test()
Num = FreeFile
fichier = ActiveWorkbook.Path & "Batch du " & _
Format(Date, "dd-mm-yy") & " " & Format(Time, "hh-mm-ss") & ".bat"
Open fichier For Append As #Num
Nom_doc = [A1]
Range("A2").Select
While ActiveCell <> ""
    data = "pdftk " & [A1] & " stamp " & ActiveCell & ".pdf output
resultat_" & ActiveCell & ".pdf"
    Print #Num, data
    ActiveCell.Offset(1, 0).Select
Wend
Close #Num
End Sub

Tu devrais également pouvoir le faire directement en VBA en utilisant
la commande "Shell" : shell(data). Il faudra peut-être que tu donnes
les chemins complets du logiciel et des arguments mais ça doit se
faire !

ThierryP

On 9 juin, 12:48, Alfred WALLACE wrote:







> Bonjour,
> il y a quelques semaines, j'étais venu consulter
> les "oracles" et autres gurus bienveillants , mais,
> sans solutions possibles...
> dépuis j'ai continuer à chercher, et je revien avec
> un début de solution, mais sans pouvoir la mêtre en oeuvre
> car je ne sais pas faire certaines choses.....

> le problème :
> j'ai un documents (de X pages) que je veux imprimer
> en Y exemplaires (un exemplaire par responsable).
> Je voulais inserer en filigrane le nom de chaque responsable
> pour chaque pages de chaque exemplaire.

> j'ai trouvé l'outil PDFtK (http://www.pdflabs.com/docs/pdftk-man-
> page/)
> en licence libre (GPL) qui permet par ligne
> de commande, d'inserer à un document en PDF, un
> filigrane, issu d'un autre document pdf.

> exemple en ligne de commande, si je tape

> pdftk document.pdf stamp filigrane.pdf output resultat.pdf

> en resultat j'aurai le filigrane dans le fichier "resultat.pdf"

> ce que j'aimerai donc faire, c'est créer un fichier batch
> dont "document.pdf" est en A1
> et ensuite à partir de A2 j'ai une serie de noms
> représentant les filigranes.

> le fichier bat devrait ressembler à çà

> pdftk document.pdf stamp toto.pdf output resultat-toto.pdf
> pdftk document.pdf stamp tutu.pdf output resultat-tutu.pdf
> pdftk document.pdf stamp titi.pdf output resultat-titi.pdf
> pdftk document.pdf stamp tata.pdf output resultat-tata.pdf

> il me suffit ensuite de lancer le batch, et le tour est joué !

> Pourriez vous m'aider à créer ce fichier texte batch ?

> Merci beaucoup.

> José