Page 1 sur 2

[..] Comment concaténer des pdfs réunis dans de multiples dossiers.

Posté : mar. 22 janv. 2019 15:00
par lambda
Bonjour

J'essaie de regrouper des fichiers pdf selon un ordre défini par un fichier csv.
Je souhaiterais que les fichiers assemblés portent les noms des dossiers source respectifs
ou aboutissent dans les dossiers source des pdf (pour être renommer par la suite )

Quelques exemples concrets avant l’exécution du script :
dans le dossier alpha :
-40 pdf aux noms barbares
-1 fichier toto.csv permettant de fixer l'ordre d'assemblage

dans le dossier bravo :
-64 pdf aux noms barbares
-1 fichier toto.csv permettant de fixer l'ordre d'assemblage

dans le dossier charlie :
-48 pdf aux noms barbares
-1 fichier toto.csv permettant de fixer l'ordre d'assemblage

idem pour d'autres dizaines de dossiers

Je souhaiterais que les nouveaux pdf générés portent les noms des dossiers dont il sont la somme
par exemple: alpha.pdf , bravo.pdf , charlie.pdf
Ou si cela était impossible qu'ils se nomment tous outpout.pdf et soient présents dans leur dossier d'origine
(alpha, bravo, charlie etc...)

Objectif après l’exécution du script :
dans le dossier alpha :
-40 pdf aux noms barbares
-1 fichier toto.csv permettant de fixer l'ordre d'assemblage
-1 fichier alpha.pdf ou 1 fichier outpout.pdf

dans le dossier bravo :
-64 pdf aux noms barbares
-1 fichier toto.csv permettant de fixer l'ordre d'assemblage
-1 fichier bravo.pdf (assemblage des 64 pdf) ou 1 fichier outpout.pdf

etc..

Un script proposé par robertocm m'a facilité la tâche
Voir ici:

Je l'ai un peu adapté, ce qui donne :
#include <Constants.au3>

Local $iPID, $sOutput = ""

$sFilePath = "C:\Program Files\AutoIt3\sejda-console-3.2.66\bin\"
$sFileShort= FileGetShortName($sFilePath)
$iPID = Run(@ComSpec & " /C """ & @ScriptDir & "\sejda-console-3.2.66\bin\sejda-console.bat"" merge -l " & $sFileShort & "toto.csv -o " & $sFileShort & "output.pdf --overwrite", "", @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)

ProcessWaitClose($iPID)
$sOutput = StdoutRead($iPID)
ConsoleWrite($sOutput)
Mais, malheureusement j'obtiens ce message:
Invalid value (File 'C:\PROGRA~1\AutoIt3\SEJDA-~1.66\bin\toto.csv' does not exist): [--filesListConfig -l value] : xml or csv file containing pdf files list to concat. If csv file in comma separated value format; if xml file <filelist><file value="filepath" /></filelist> (optional)
Pourtant toto.csv est bien présent au milieu des fichiers pdf.
Quand je lance une commande similaire "manuellement" au moyen de la console pour ne "traiter" qu'un seul toto.csv , ça fonctionne vite et bien.

Pourriez-vous m'aider à trouver ce qui cloche, j'ai déjà essayé beaucoup de combinaisons sans trouver la bonne solution ?

D'avance merci

lamda

Re: [..] Comment concaténer des pdfs réunis dans de multiples dossiers.

Posté : mar. 22 janv. 2019 15:18
par DimVar
Bonjour,

Difficile de dire à distance sans les outils, mais as tu testé sans ta commande 'FileGetShortName' ?

Cdlt.

Re: [..] Comment concaténer des pdfs réunis dans de multiples dossiers.

Posté : mar. 22 janv. 2019 16:44
par lambda
Bonjour Dimvar

Merci de t'intéresser à mon cas

Je viens de supprimer "'FileGetShortName", en laissant le reste, cela provoque de nouveaux messages d'erreur.

Sinon j'ai oublié d'indiquer que sejda-console ne nécessite pas d'installation.

La version 3.2.67 est disponible chez Github :https://github.com/torakiki/sejda/releases/latest

J'ai mis à jour la mienne sans plus de succès.

Il faut glisser l'ensemble pdf+csv dans le dossier bin de sejda-console

Ouvrir le dossier bin en mode console et lancer par exemple:
sejda-console.bat merge -l "C:\Program Files\AutoIt3\sejda-console-3.2.67\bin\toto.csv" -o "outpout.pdf"

Re: [..] Comment concaténer des pdfs réunis dans de multiples dossiers.

Posté : mar. 22 janv. 2019 17:12
par DimVar
Sans doute faut il alors, que tu intègres les doubles quotes pour ton PATH dans sFileShort.

Ex :
sFileShortQuoted = '"' & sFileShort & '"'
Dis moi si cela chnage qqchose, sinon, j'essaierais ce soir avec sedja.

Re: [..] Comment concaténer des pdfs réunis dans de multiples dossiers.

Posté : mar. 22 janv. 2019 18:16
par lambda
Désolé, je ne suis pas certain d'appliquer correctement ce que tu me conseilles, je n'ai pas le même niveau que toi. :oops:

Merci.

Re: [..] Comment concaténer des pdfs réunis dans de multiples dossiers.

Posté : mar. 22 janv. 2019 18:51
par DimVar
Je pense que ca venait des triples quotes, essaie ca :
#include <Constants.au3>

Local $iPID, $sOutput = ""

$sFilePath = "C:\Program Files\AutoIt3\sejda-console-3.2.66\bin\"
$sFileShort= FileGetShortName($sFilePath)
$iPID = Run(@ComSpec & " /C " & @ScriptDir & "\sejda-console-3.2.66\bin\sejda-console.bat" & 'merge -l ' & $sFileShort & 'toto.csv -o ' & $sFileShort & 'output.pdf --overwrite', "", @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)

ProcessWaitClose($iPID)
$sOutput = StdoutRead($iPID)
ConsoleWrite($sOutput))

Re: [..] Comment concaténer des pdfs réunis dans de multiples dossiers.

Posté : mar. 22 janv. 2019 19:28
par lambda
>Running AU3Check (3.3.14.2)  from:C:\Program Files\AutoIt3  input:C:\Program Files\AutoIt3\merge.au3
"C:\Program Files\AutoIt3\merge.au3"(11,23) : error: syntax error
ConsoleWrite($sOutput))
~~~~~~~~~~~~~~~~~~~~~~^
"C:\Program Files\AutoIt3\merge.au3"(11,23) : error: Statement cannot be just an expression.
ConsoleWrite($sOutput))
~~~~~~~~~~~~~~~~~~~~~~^
C:\Program Files\AutoIt3\merge.au3 - 2 error(s), 0 warning(s)
!>19:21:35 AU3Check ended. Press F4 to jump to next error.rc:2
+>19:21:35 AutoIt3Wrapper Finished.
>Exit code: 2    Time: 1.043
Merci DimVar

Re: [..] Comment concaténer des pdfs réunis dans de multiples dossiers.

Posté : mar. 22 janv. 2019 19:41
par DimVar
Et ca ?
#include <Constants.au3>

Local $iPID, $sOutput = ""

$sFilePath = "C:\Program Files\AutoIt3\sejda-console-3.2.66\bin\"
$sFileShort= FileGetShortName($sFilePath)
$iPID = Run(@ComSpec & " /C " & @ScriptDir & "sejda-console-3.2.66\bin\sejda-console.bat" & 'merge -l ' & $sFileShort & 'toto.csv -o ' & $sFileShort & 'output.pdf --overwrite', "", @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)

ProcessWaitClose($iPID)
$sOutput = StdoutRead($iPID)
ConsoleWrite($sOutput))

Re: [..] Comment concaténer des pdfs réunis dans de multiples dossiers.

Posté : mar. 22 janv. 2019 20:05
par lambda
>Running AU3Check (3.3.14.2)  from:C:\Program Files\AutoIt3  input:C:\Program Files\AutoIt3\merge.au3
"C:\Program Files\AutoIt3\merge.au3"(11,23) : error: syntax error
ConsoleWrite($sOutput))
~~~~~~~~~~~~~~~~~~~~~~^
"C:\Program Files\AutoIt3\merge.au3"(11,23) : error: Statement cannot be just an expression.
ConsoleWrite($sOutput))
~~~~~~~~~~~~~~~~~~~~~~^
C:\Program Files\AutoIt3\merge.au3 - 2 error(s), 0 warning(s)
!>20:00:23 AU3Check ended. Press F4 to jump to next error.rc:2
+>20:00:23 AutoIt3Wrapper Finished.
>Exit code: 2    Time: 1.057
Merci

Re: [..] Comment concaténer des pdfs réunis dans de multiples dossiers.

Posté : mar. 22 janv. 2019 20:17
par DimVar
Bon.
Reprenons depuis le debut.
Teste ca depuis ton invite de commande :
"c:\Program Files\AutoIt3\sejda-console-3.2.66\bin\sejda-console-3.2.66\bin\sejda-console.bat merge -l toto.csv -o output.pdf --overwrite"
Ou depuis ta fenêtre "exécuter" du menu demarrer (touche windows + r)

Si cela fonctionne, essaie ce script :
$iPID = Run(@ComSpec & " /c " & 'c:\Program Files\AutoIt3\sejda-console-3.2.66\bin\sejda-console-3.2.66\bin\sejda-console.bat merge -l toto.csv -o output.pdf --overwrite', "", @SW_HIDE)

Re: [..] Comment concaténer des pdfs réunis dans de multiples dossiers.

Posté : mar. 22 janv. 2019 20:52
par lambda
C:\Program Files\AutoIt3\sejda-console-3.2.67\bin>"c:\Program Files\AutoIt3\sejd
a-console-3.2.67\bin\sejda-console.bat merge -l toto.csv -o output.pdf --overwri
te"
'"c:\Program Files\AutoIt3\sejda-console-3.2.67\bin\sejda-console.bat merge -l t
oto.csv -o output.pdf --overwrite"' n'est pas reconnu en tant que commande inter
ne
ou externe, un programme exécutable ou un fichier de commandes.

C:\Program Files\AutoIt3\sejda-console-3.2.67\bin>
Je me suis permis de mettre à jour la version et de supprimer la partie [sejda-console-3.2.66\bin] en double dans la commande

Re: [..] Comment concaténer des pdfs réunis dans de multiples dossiers.

Posté : mar. 22 janv. 2019 21:00
par DimVar
Oups, je fatigue ^^

en ligne de commande :
"c:\Program Files\AutoIt3\sejda-console-3.2.66\bin\sejda-console-3.2.66\bin\sejda-console.bat" merge -l toto.csv -o output.pdf --overwrite


Si bien sur toto.csv se trouve dans le dossier '\bin'

Re: [..] Comment concaténer des pdfs réunis dans de multiples dossiers.

Posté : mar. 22 janv. 2019 21:16
par lambda
C:\Program Files\AutoIt3\sejda-console-3.2.67\bin>"c:\Program Files\AutoIt3\sejd
a-console-3.2.67\bin\sejda-console-3.2.67\bin\sejda-console.bat" merge -l toto.c
sv -o output.pdf --overwrite
Le chemin d'accès spécifié est introuvable.

C:\Program Files\AutoIt3\sejda-console-3.2.67\bin>

Re: [..] Comment concaténer des pdfs réunis dans de multiples dossiers.

Posté : mar. 22 janv. 2019 21:22
par DimVar
Au secours !
"c:\Program Files\AutoIt3\sejda-console-3.2.66\bin\sejda-console.bat" merge -l toto.csv -o output.pdf --overwrite

Re: [..] Comment concaténer des pdfs réunis dans de multiples dossiers.

Posté : mar. 22 janv. 2019 21:40
par lambda
C:\Program Files\AutoIt3\sejda-console-3.2.67\bin>"c:\Program Files\AutoIt3\sejd
a-console-3.2.66\bin\sejda-console.bat" merge -l toto.csv -o output.pdf --overwr
ite
Le chemin d'accès spécifié est introuvable.

C:\Program Files\AutoIt3\sejda-console-3.2.67\bin>
J'ai lancé la commande qui marche hors Autoit:
C:\Program Files\AutoIt3\sejda-console-3.2.67\bin>sejda-console.bat merge -l "C:
\Program Files\AutoIt3\sejda-console-3.2.67\bin\toto.csv" -o "outpout.pdf"
Configuring Sejda 3.2.67
L'├®l├®ment racine de document "sejda" doit correspondre ├á la racine DOCTYPE "n
ull".
Le document nest pas valide : aucune grammaire d├®tect├®e.
Starting execution with arguments: 'merge -l C:\Program Files\AutoIt3\sejda-cons
ole-3.2.67\bin\toto.csv -o outpout.pdf'
Java version: '1.8.0_151'
Validating parameters.
Starting task (org.sejda.impl.sambox.MergeTask@12bac3f) execution.
Temporary output set to C:\Program Files\AutoIt3\sejda-console-3.2.67\bin\.sejda
Tmp3424357002859541327.tmp
Using fallback font ArialMT for base font Symbol
Using fallback font ArialMT for base font ZapfDingbats
Opening C:\Program Files\AutoIt3\sejda-console-3.2.67\bin\03-3QJ36R.
pdf
Adding pages
Updating outline with policy RETAIN
Filtering annotations
Skipped acroform merge, nothing to merge
Task progress: 3% done
Opening C:\Program Files\AutoIt3\sejda-console-3.2.67\bin\03-3QJ01G.
pdf
Adding pages
Updating outline with policy RETAIN
Filtering annotations
Skipped acroform merge, nothing to merge
Task progress: 7% done
Opening C:\Program Files\AutoIt3\sejda-console-3.2.67\bin\03-3QJ02L.
pdf
Adding pages
Updating outline with policy RETAIN
Filtering annotations
Skipped acroform merge, nothing to merge
Task progress: 10% done
Opening C:\Program Files\AutoIt3\sejda-console-3.2.67\bin\03-3QJ0ZM.
pdf
Adding pages
Updating outline with policy RETAIN
Filtering annotations
Skipped acroform merge, nothing to merge
Task progress: 14% done
Opening C:\Program Files\AutoIt3\sejda-console-3.2.67\bin\03-3QJ10X.
pdf
Adding pages
Updating outline with policy RETAIN
Filtering annotations
Skipped acroform merge, nothing to merge
Task progress: 17% done
Opening C:\Program Files\AutoIt3\sejda-console-3.2.67\bin\03-3QJ20A.
pdf
Adding pages
Updating outline with policy RETAIN
Filtering annotations
Skipped acroform merge, nothing to merge
Task progress: 21% done
Opening C:\Program Files\AutoIt3\sejda-console-3.2.67\bin\03-3QJ0EX.
pdf
Adding pages
Updating outline with policy RETAIN
Filtering annotations
Skipped acroform merge, nothing to merge
Task progress: 24% done
Opening C:\Program Files\AutoIt3\sejda-console-3.2.67\bin\03-3QJ08F.
pdf
Adding pages
Updating outline with policy RETAIN
Filtering annotations
Skipped acroform merge, nothing to merge
Task progress: 28% done
Opening C:\Program Files\AutoIt3\sejda-console-3.2.67\bin\03-3QJ0AF.
pdf
Adding pages
Updating outline with policy RETAIN
Filtering annotations
Skipped acroform merge, nothing to merge
Task progress: 31% done
Opening C:\Program Files\AutoIt3\sejda-console-3.2.67\bin\03-3QHU25.
pdf
Adding pages
Updating outline with policy RETAIN
Filtering annotations
Skipped acroform merge, nothing to merge
Task progress: 34% done
Opening C:\Program Files\AutoIt3\sejda-console-3.2.67\bin\03-3QHTJG.
pdf
Adding pages
Updating outline with policy RETAIN
Filtering annotations
Skipped acroform merge, nothing to merge
Task progress: 38% done
Opening C:\Program Files\AutoIt3\sejda-console-3.2.67\bin\03-3QHTGL.
pdf
Adding pages
Updating outline with policy RETAIN
Filtering annotations
Skipped acroform merge, nothing to merge
Task progress: 41% done
Opening C:\Program Files\AutoIt3\sejda-console-3.2.67\bin\03-3QHTH9.
pdf
Adding pages
Updating outline with policy RETAIN
Filtering annotations
Skipped acroform merge, nothing to merge
Task progress: 45% done
Opening C:\Program Files\AutoIt3\sejda-console-3.2.67\bin\03-3QHRRC.
pdf
Adding pages
Updating outline with policy RETAIN
Filtering annotations
Skipped acroform merge, nothing to merge
Task progress: 48% done
Opening C:\Program Files\AutoIt3\sejda-console-3.2.67\bin\03-3QJ0QT.
pdf
Adding pages
Updating outline with policy RETAIN
Filtering annotations
Skipped acroform merge, nothing to merge
Task progress: 52% done
Opening C:\Program Files\AutoIt3\sejda-console-3.2.67\bin\03-3QJ0R1.
pdf
Adding pages
Updating outline with policy RETAIN
Filtering annotations
Skipped acroform merge, nothing to merge
Task progress: 55% done
Opening C:\Program Files\AutoIt3\sejda-console-3.2.67\bin\03-3QJ120.
pdf
Adding pages
Updating outline with policy RETAIN
Filtering annotations
Skipped acroform merge, nothing to merge
Task progress: 59% done
Opening C:\Program Files\AutoIt3\sejda-console-3.2.67\bin\03-3QJ3KT.
pdf
Adding pages
Updating outline with policy RETAIN
Filtering annotations
Skipped acroform merge, nothing to merge
Task progress: 62% done
Opening C:\Program Files\AutoIt3\sejda-console-3.2.67\bin\03-3QJ0VR.
pdf
Adding pages
Updating outline with policy RETAIN
Filtering annotations
Skipped acroform merge, nothing to merge
Task progress: 66% done
Opening C:\Program Files\AutoIt3\sejda-console-3.2.67\bin\03-3QJ192.
pdf
Adding pages
Updating outline with policy RETAIN
Filtering annotations
Skipped acroform merge, nothing to merge
Task progress: 69% done
Opening C:\Program Files\AutoIt3\sejda-console-3.2.67\bin\03-3QJ14E.
pdf
Adding pages
Updating outline with policy RETAIN
Filtering annotations
Skipped acroform merge, nothing to merge
Task progress: 72% done
Opening C:\Program Files\AutoIt3\sejda-console-3.2.67\bin\03-3QJ15N.
pdf
Adding pages
Updating outline with policy RETAIN
Filtering annotations
Skipped acroform merge, nothing to merge
Task progress: 76% done
Opening C:\Program Files\AutoIt3\sejda-console-3.2.67\bin\03-3QJ03G.
pdf
Adding pages
Updating outline with policy RETAIN
Filtering annotations
Skipped acroform merge, nothing to merge
Task progress: 79% done
Opening C:\Program Files\AutoIt3\sejda-console-3.2.67\bin\03-3QJ2RT.
pdf
Adding pages
Updating outline with policy RETAIN
Filtering annotations
Skipped acroform merge, nothing to merge
Task progress: 83% done
Opening C:\Program Files\AutoIt3\sejda-console-3.2.67\bin\03-3QJ20Z.
pdf
Adding pages
Updating outline with policy RETAIN
Filtering annotations
Skipped acroform merge, nothing to merge
Task progress: 86% done
Opening C:\Program Files\AutoIt3\sejda-console-3.2.67\bin\03-3QJ39Q.
pdf
Adding pages
Updating outline with policy RETAIN
Filtering annotations
Skipped acroform merge, nothing to merge
Task progress: 90% done
Opening C:\Program Files\AutoIt3\sejda-console-3.2.67\bin\03-3QHYVY.
pdf
Adding pages
Updating outline with policy RETAIN
Filtering annotations
Skipped acroform merge, nothing to merge
Task progress: 93% done
Opening C:\Program Files\AutoIt3\sejda-console-3.2.67\bin\03-3QHYWP.
pdf
Adding pages
Updating outline with policy RETAIN
Filtering annotations
Skipped acroform merge, nothing to merge
Task progress: 97% done
Opening C:\Program Files\AutoIt3\sejda-console-3.2.67\bin\03-3QHYXX.
pdf
Adding pages
Updating outline with policy RETAIN
Filtering annotations
Skipped acroform merge, nothing to merge
Task progress: 100% done
Moving C:\Program Files\AutoIt3\sejda-console-3.2.67\bin\.sejdaTmp34243570028595
41327.tmp to C:\Program Files\AutoIt3\sejda-console-3.2.67\bin\outpout.pdf.
Input documents merged correctly and written to org.sejda.model.output.FileTaskO
utput@1d4a5c2[C:\Program Files\AutoIt3\sejda-console-3.2.67\bin\outpout.pdf]
Task (org.sejda.impl.sambox.MergeTask@12bac3f) executed in 5 seconds
Completed execution

C:\Program Files\AutoIt3\sejda-console-3.2.67\bin>

Re: [..] Comment concaténer des pdfs réunis dans de multiples dossiers.

Posté : mar. 22 janv. 2019 21:58
par DimVar
Cool, on va gagner du temps avec la commande qui fonctionne sous DOS.
Du coup, en code, cela devrait donner :

$iPID = Run(@ComSpec & " /c " & 'C:\Program Files\AutoIt3\sejda-console-3.2.67\bin\sejda-console.bat merge -l "C:\Program Files\AutoIt3\sejda-console-3.2.67\bin\toto.csv" -o outpout.pdf', "", @SW_HIDE)

Re: [..] Comment concaténer des pdfs réunis dans de multiples dossiers.

Posté : mar. 22 janv. 2019 22:13
par lambda
Exécuté depuis Scite
>"C:\Program Files\AutoIt3\SciTE\..\AutoIt3.exe" "C:\Program Files\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.au3" /run /prod /ErrorStdOut /in "C:\Program Files\AutoIt3\merge.au3" /UserParams    
+>22:06:45 Starting AutoIt3Wrapper v.17.224.935.0 SciTE v.3.7.3.0   Keyboard:0000040C  OS:WIN_XP/Service Pack 3  CPU:X86 OS:X86  Environment(Language:040C)  CodePage:0  utf8.auto.check:4
+>         SciTEDir => C:\Program Files\AutoIt3\SciTE   UserDir => C:\Program Files\AutoIt3\SciTE\AutoIt3Wrapper
>Running AU3Check (3.3.14.2)  from:C:\Program Files\AutoIt3  input:C:\Program Files\AutoIt3\merge.au3
+>22:06:45 AU3Check ended.rc:0
>Running:(3.3.14.2):C:\Program Files\AutoIt3\autoit3.exe "C:\Program Files\AutoIt3\merge.au3"    
--> Press Ctrl+Alt+Break to Restart or Ctrl+Break to Stop
+>22:06:45 AutoIt3.exe ended.rc:0
+>22:06:45 AutoIt3Wrapper Finished.
>Exit code: 0    Time: 1.359
Merci

Re: [..] Comment concaténer des pdfs réunis dans de multiples dossiers.

Posté : mar. 22 janv. 2019 22:16
par DimVar
Exit code: 0, pas d'erreur.
Sejda a t'il "mergé" (concaténé) tes fichiers ?

Re: [..] Comment concaténer des pdfs réunis dans de multiples dossiers.

Posté : mar. 22 janv. 2019 22:31
par lambda
Non, hélas :oops:

Re: [..] Comment concaténer des pdfs réunis dans de multiples dossiers.

Posté : mer. 23 janv. 2019 11:28
par DimVar
Dernier essai, apres je passe la main :
$iPID = Run(@ComSpec & " /c " & '"C:\Program Files\AutoIt3\sejda-console-3.2.67\bin\sejda-console.bat" merge -l "C:\Program Files\AutoIt3\sejda-console-3.2.67\bin\toto.csv" -o outpout.pdf', "", @SW_HIDE)