Hallo!
Im Job müssen wir jeden Tag Daten aus unserem Ticketsystem in ein Formular auf der Webseite eines Kunden übertragen. Eine sehr eintönige Arbeit, zumindest für das Übertragen der Texte aus dem Ticket in die Eingabemaske des Kunden helfe ich mir da schon mit einem MouseRecording-Programm. Leider ist das noch nicht alles.
Zu jedem Ticket liegen zusätzlich eine oder mehrere PDF-Files vor,die wir aus dem Ticketsystem heraus auf die HDD speichern und dann mit dem Programm "PDFTools" (ist ein Teil vom PDF-XChange) zu einer einzelnen Datei mergen müssen,welche dann mit auf die Webseite des Kunden hochgeladen wird. PDFTools ist dabei so konfiguriert,daß es den Namen der ersten Quelldatei als Zieldateiname übernimmt und die Zieldatei dann in einen eigenen Ordner verschiebt.
Vor dem Vorgang habe ich also ein Quellverzeichnis,welches etwa so aussieht:
12345.pdf
12345_b.pdf
12345_c.pdf
67890.pdf
67890_b.pdf
Im Zielordner liegen dann nur noch die Dateien 12345.pdf und 67890.pdf.
Das kann man entweder über eins der vielen Tools mit grafischer Oberfläche machen (wie wir bisher mit PDFTools) oder man nutzt ein Kommandozeilentool wie pdftk. Muss man das mehrere dutzend mal pro Tag machen,ist das aber ganz schön nervig.
Mit pdftk kann man mehrere pdfs mit der folgenden Syntax zusammenfügen: pdftk.exe quelldatei1.pdf quelldatei2.pdf output zieldatei.pdf. Will man nicht jede Quelldatei von Hand eingeben,kann man auch mit Platzhaltern arbeiten, müsste aber trotzdem noch den vollständigen Namen der Zieldatei eingeben: pdftk.exe 123*.pdf output 12345_fertig.pdf würde folglich alle PDF-Files,die mit 123 beginnen,zu einer einzigen Zieldatei zusammenbasteln.
Nun habe ich überlegt, ob man nicht Autohotkey nutzen könnte,um diesen ganzen Vorgang zu automatisieren. Ich hab nur das Problem,daß ich im Bereich Autohotkey blutiger Anfänger bin und keinen Plan habe, wie ich das umsetzen soll.
Im Grunde bräuchte ich also ein Script, welches pdftk mit den Namen der PDF-Files füttert, der Zieldatei den Namen der ersten Quelldatei gibt und diese in den Zielordner speichert/verschiebt. Und das natürlich je nach Namen der Quelldateien in eigene Zieldateien (d.h. wenn sich die Zahl im Namen der Quelldateien ändert,soll auch eine neue Zieldatei angelegt werden).
Hat da jemand eine Idee,wie man das umsetzen kann ?
PDFs mit unterschiedlicher Stückzahl mergen
Moderator: jNizM
Re: PDFs mit unterschiedlicher Stückzahl mergen
Idee , drag&drop pdf-files und zusammenfügen mit pdftk.exe
erstellt Ordner anhand erster pdf-filename und fügt pdf-files zusammen zu combined_%erstername%.pdf
erstellt Ordner anhand erster pdf-filename und fügt pdf-files zusammen zu combined_%erstername%.pdf
Code: Select all
setworkingdir,%a_scriptdir%
filename1=PDF-Combine pdftk.exe
;PR=C:\M_SmallPrograms\pdftk\pdftk.exe
PR=%a_scriptdir%\pdftk.exe
extensions:="pdf"
loop,%PR% ;- create program shortpath
SPR1= %A_loopFileShortPath%
Gui,2: Font, default, FixedSys
Gui,2:add,button , x840 y15 h22 w100 gStart1 ,Start
Gui,2:Show, x50 y10 w970 h150,%Filename1%
Gui,2:add,edit , x10 y10 h130 w820 cGray vF1,
return
2Guiclose:
exitapp
;=========================================
2GuiDropFiles:
Loop, parse, A_GuiEvent, `n
{
guicontrolget,F1
GuiControl,2:,F1,%f1%%A_LoopField%`n
}
return
;----------------------------------------
start1:
Gui,2:submit,nohide
e=
i=0
Loop,parse,F1,`n
{
SplitPath,A_LoopField, name, dir, ext, name_no_ext, drive
if ext in %Extensions%
{
i++
if (i=1)
{
destfile =Combined_%name_no_ext%
destfolder=%name_no_ext%
}
loop,%a_loopfield%
SFL1= %A_loopFileShortPath%
e .= SFL1 . " "
}
}
;msgbox,%e%
if e<>
{
ifnotexist,%destfolder%
filecreatedir,%destfolder%
dest=%destfolder%\%destfile%.pdf
ifnotexist,%dest%
fileappend,,%dest% ;- create empty destxy.pdf
loop,%dest%
SDD1=%A_loopFileShortPath% ;- shortpath from destxy.pdf
;msgbox,"%spr1%" %e% output %sdd1%
;runwait,%comspec% /k "%spr1%" %e% output %sdd1% ;- see error
runwait,"%spr1%" %e% output %sdd1%,,hide ;- run hidden
run,%sdd1% ;- open created new merged pdf-file
}
return
;======================================================================
Who is online
Users browsing this forum: No registered users and 40 guests