PDF Dateien mit gleichem Namen zusammenführen

EmilS

Neues Mitglied
Thread Starter
Dabei seit
01.01.2019
Beiträge
19
Reaktionspunkte
5
Liebe Forum-Gemeinde,

ich bin auf der Suche nach einer Lösung für folgendes Problem: Ich muss immer wieder PDFs, die den gleichen Namen haben (bis auf eine -1 oder -2 am Ende der Datei) zu einer PDF Datei zusammenführen. Nun bin ich auf der Suche nach einer Möglichkeit die PDFs automatisch zu kombinieren.
Auf der Suche nach einer Lösung bin ich auf qPDF gestoßen. Ich bekomme es aber nicht hin...
Meine Idee war, dass wenn §1 die Datei "file-1.pdf" ist, dieses mit "file-.pdf" zusammengefügt wird. Das funktioniert leider nicht...

Code:
ps=$1
x=$(echo "${ps}" | sed -e "s/[0-9]//g")
qpdf $1 $x output.pdf

Zusätzlich habe ich das AppleScript in diesem post gefunden. Das funktioniert aber leider auch nicht...
https://www.macuser.de/threads/erweitertes-kombinieren-von-pdf-dateien-mit-automator.669567/#post-7800740

Hat jemand von Euch vielleicht eine Idee, wie ich das schaffen könnte?
(Ich benutze Hazel. Die App beobachtet bestimmte Ordner. Idealer Weise würde das Script dazu führen, dass wenn immer pdfs mit gleichem Namen im Ordner auftauchen, sie automatisch kombiniert werden, bzw. an das schon vorhandene PDF angefügt werden... doch das wäre dann der nächste Schritt.)
 
Hier gibt es noch eine schöne Lösung, allerdings müssen dafür die zugehörigen Dateien auf das Programm gezogen werden. Gibt es eine Möglichkeit das so umzuschreiben, dass man auch einen Ordner darauf ziehen kann, der PDFs enthält? Bzw. ob man per script bestimmen kann, welche Dateien per Dateipfad das Programm zusammensetzt?... dann könnte es mit Hazel funktionieren.

Edit: Ich habe versucht das Program in einen Automator Workflow einzugliedern, der den Inhalt eines Ordners an das Programm weiter gibt... das hat leider auch nicht funktioniert.

Bildschirmfoto 2019-04-15 um 16.29.12.png
 
Zuletzt bearbeitet:
ja, da habe ich eine Weile dran gelesen. Ich verstehe es leider nicht richtig...
Da steht zwar "Multiple input files may be specified." aber nicht wie genau. Das habe ich aus einem Beispiel unten:
Code:
qpdf --collate --empty --pages a.pdf 1-5 b.pdf 6-4 c.pdf r1 -- out.pdf

Das habe ich so umgeschrieben, da ich alle Seiten haben möchte ("If qpdf sees a value in the place where it expects a page range and that value is not a valid range but is a valid file name, qpdf will implicitly use the range 1-z, meaning that it will include all pages in the file."), nicht "collate" und kein neues Dokument brauche:

Code:
qpdf a.pdf b.pdf out.pdf

Der Rest ist ein noch unwissenderes gefrickel da Hazel nur eine Datei an das Shellscript per variable $1 weitergeben kann. Wenn nun $1 die zweite Datei ist, also datei-1.pdf und die Datei, die ich anfügen will datei-.pdf heisst, dann sollte $x die Zahl aus dem Namen löschen und so zweite Dateien richtig angeben...

Doch wahrscheinlich bin ich da völlig auf dem Holzweg....
 
Starting with qpdf 5.0.0, it is possible to omit the page range. If qpdf sees a value in the place where it expects a page range and that value is not a valid range but is a valid file name, qpdf will implicitly use the range 1-z, meaning that it will include all pages in the file. This makes it possible to easily combine all pages in a set of files with a command like qpdf --empty out.pdf --pages *.pdf --.
In deinem Fall würde ich mal
Code:
qpdf --empty out.pdf --pages files*.pdf --
probieren, wenn die Dateien files-1.pdf, files-2.pdf, ... heißen. Oder wenn du beliebige mit Dateiname-#.pdf in einer Datei kombinieren willst
Code:
for f in *-1.pdf; do qpdf --empty "${f%-1.pdf} - joined.pdf" --pages "${f%-1.pdf}"*.pdf --; done
Das sucht nach *-1.pdf und packt dann für jedes gefundene Dateiname-1.pdf alle mit dem Schema Dateiname-#.pdf in Dateiname - joined.pdf.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: EmilS
Oh ja!! Das hat funktioniert ich DANKE Dir!! Vielen, vielen Dank für die Lösung!
Kann ich mich irgendwie revanchieren? (ich habe die Lösung auch hier im Hazel Forum gepostet: https://www.noodlesoft.com/forums/viewtopic.php?f=4&t=1457&p=28884#p28884)
Anbei der Screenshot, wie ich es mit Hazel zum Laufen gebracht habe, (für all diejenigen, die viellicht bei einer Suche hier darüber stolpern):
 

Anhänge

  • Bildschirmfoto 2019-04-16 um 00.01.14.png
    Bildschirmfoto 2019-04-16 um 00.01.14.png
    73,9 KB · Aufrufe: 266
  • Gefällt mir
Reaktionen: dg2rbf und vidman2019
Freut mich dass es funktioniert und schön dass du die damit gefundene Lösung hier postest. So können andere davon auch profitieren.
 
  • Gefällt mir
Reaktionen: dg2rbf und EmilS
Du kannst das auch online und unabhangig vom Dateinamen machen, zum Beispiel.
 
Zuletzt bearbeitet von einem Moderator:
Zurück
Oben Unten