Anfänger benötigt Hilfe bei PDFs
Hallo zusammen,
ich bin ein leidgeplagter Endnutzer der bei dem leidigen Thema PDFs zusammenführen Hilfe benötigt. Ich habe mir hier schon ein paar Beiträge durchgelesen aber mein Verständnis reicht irgendwie nicht aus um das umzusetzen. Ich hoffe hier auf eine simple Lösung meines Problems:
Ich habe einen Ordnern mit knapp 250 PFDs mit folgender Bezeichnung: Müller, Max_Report per_30.09.2021.pdf (Datum ändert sich)
In einem anderen Ordner liegen knapp 220 PDFs mit folgender Bezeichnung: Müller.pdf (Dateiname bleibt immer gleich)
Ich suche jetzt eine Möglichkeit um die Müller, Max_Report ... mit der Müller.pdf automatisch zu verbinden, sodass der Report die erste Seite ist. Als Dateiname soll Müller, Max_Report per 30.09.2021 bleiben. Manche Reports haben keinen Anhang und bleiben bestehen.
Ich bin bezüglich Batch oder Powershell komplett unerfahren und habe bisher immer PDF24, Foxit oder Printconductor benutzt. Das wird mittlerweile bei der Vielzahl an Dateien einfach nervig diese manuell zu verbinden.
Gibt es für meinen Fall eine simple Lösung? Ich bin auch bereit eine Art "Leitfaden" zu schreiben, welche Dateien zusammengehören oder sowas. Aber ich finde einfach kein Programm welches mir sowas anbietet. Am besten wäre es natürlich wenn man die Dateinamen abgleichen könnte und die dann zusammenfügen könnte. Die Müller.pdf lässt sich auch anpassen in Müller,Max.pdf oder ähnlich.
Ich bin für jede Hilfe dankbar!
Beste Grüße und schönen Abend!
ich bin ein leidgeplagter Endnutzer der bei dem leidigen Thema PDFs zusammenführen Hilfe benötigt. Ich habe mir hier schon ein paar Beiträge durchgelesen aber mein Verständnis reicht irgendwie nicht aus um das umzusetzen. Ich hoffe hier auf eine simple Lösung meines Problems:
Ich habe einen Ordnern mit knapp 250 PFDs mit folgender Bezeichnung: Müller, Max_Report per_30.09.2021.pdf (Datum ändert sich)
In einem anderen Ordner liegen knapp 220 PDFs mit folgender Bezeichnung: Müller.pdf (Dateiname bleibt immer gleich)
Ich suche jetzt eine Möglichkeit um die Müller, Max_Report ... mit der Müller.pdf automatisch zu verbinden, sodass der Report die erste Seite ist. Als Dateiname soll Müller, Max_Report per 30.09.2021 bleiben. Manche Reports haben keinen Anhang und bleiben bestehen.
Ich bin bezüglich Batch oder Powershell komplett unerfahren und habe bisher immer PDF24, Foxit oder Printconductor benutzt. Das wird mittlerweile bei der Vielzahl an Dateien einfach nervig diese manuell zu verbinden.
Gibt es für meinen Fall eine simple Lösung? Ich bin auch bereit eine Art "Leitfaden" zu schreiben, welche Dateien zusammengehören oder sowas. Aber ich finde einfach kein Programm welches mir sowas anbietet. Am besten wäre es natürlich wenn man die Dateinamen abgleichen könnte und die dann zusammenfügen könnte. Die Müller.pdf lässt sich auch anpassen in Müller,Max.pdf oder ähnlich.
Ich bin für jede Hilfe dankbar!
Beste Grüße und schönen Abend!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 1399273628
Url: https://administrator.de/contentid/1399273628
Ausgedruckt am: 19.11.2024 um 22:11 Uhr
18 Kommentare
Neuester Kommentar
Ich bin auch bereit eine Art "Leitfaden" zu schreiben
Das wäre sicher nicht das Verkehrteste, denn die Beschreibung oben ist auch für einen Profi recht und man hat es auch nach 2maligem Lesen schwer das alles zu sortieren.Einmal redest du von "PFDs", dann willst du dem Forum weismachen das du in einem Ordner 220 mal den gleichen Dateinamen hast, dann wieder Dateinamen mit Kommas und Leerzeichen...
Mal im Ernst...mit solch wirrer und konfuser Beschreibung was genau du mit welchen konkreten Dateinamen erreichen willst bzw. dein Ziel sein soll, ist doch eine zielführende Hilfe fast unmöglich.
Hi,
falls du das gerne selbst probieren möchtest:
Der PDF24 kann über die Kommandozeile bedient werden.
https://creator.pdf24.org/manual/10/#pdf24-doctoolexe
Mit Powershell müsstest du also erstmal die beiden zusammengehörigen Dateien finden und dann in etwa
Viel Erfolg!
P.s.: Hier gibt es einige Powershellprofis, vll. erbarmt sich jemand
falls du das gerne selbst probieren möchtest:
Der PDF24 kann über die Kommandozeile bedient werden.
https://creator.pdf24.org/manual/10/#pdf24-doctoolexe
Mit Powershell müsstest du also erstmal die beiden zusammengehörigen Dateien finden und dann in etwa
pdf24-DocTool.exe -join -outputDir C:\temp -outputFile datei1 datei1 datei2
Viel Erfolg!
P.s.: Hier gibt es einige Powershellprofis, vll. erbarmt sich jemand
Moin,
das ist eine Aufgabe für die Powershell. Guckst Du hier:
https://evotec.xyz/merging-splitting-and-creating-pdf-files-with-powersh ...
Falls Du das nicht alleine kannst, musst Du warten, bis ich Zeit und Lust habe, ein Skript zu schreiben.
Liebe Grüße
Erik
das ist eine Aufgabe für die Powershell. Guckst Du hier:
https://evotec.xyz/merging-splitting-and-creating-pdf-files-with-powersh ...
Falls Du das nicht alleine kannst, musst Du warten, bis ich Zeit und Lust habe, ein Skript zu schreiben.
Liebe Grüße
Erik
Schnell zusammen geschribselt...
# quellordner 1
$source = "D:\Ordner\reports"
# quellordner 2
$source2 = "D:\Ordner\reports2"
# Ausgabeordner
$output = "D:\output"
# --------------------
# installiere nötiges Module wenn nicht vorhanden
if (!(Get-Module -ListAvailable -Name PSWritePDF)){
write-host "PSWritePDF Modul ist nicht installiert, starte eine elevierte Powershell um das Modul zu installieren ..." -F Yellow
start powershell -verb runas -ArgumentList '-c "Install-Module -Name PSWritePdf -Force"' -Wait
if (!(Get-Module -ListAvailable -Name PSWritePDF)){
write-error "Missing powershell module 'PSWritePDF'" -Category NotInstalled
exit 1
}
}
#-------------------------
# gruppiere die pdfs anhand des strings vom Anfang bis zum ersten Unterstrich im Dateinamen
(Get-ChildItem $source -File -Filter *.pdf) + (Get-ChildItem $source2 -File -Filter *.pdf) | group {$_.Basename.split('_')} | %{
if ($_.Count -gt 1){
# merge pdfs
Merge-PDF -InputFile $_.Group.Fullname -outputfile "$output\$($_.Group.Name)" -verbose
}
}
Nicht so streng.
Na, das habe ich so verstanden, dass 220 Dateien nach dem Muster existieren. Also müller.pdf, meier.pdf, schulze.pdf usw.
Wieso? Geht doch. Ist nicht schön und macht einen Haufen Probleme beim Skripten. Aber es geht.
Zitat von @aqui:
Einmal redest du von "PFDs", dann willst du dem Forum weismachen das du in einem Ordner 220 mal den gleichen Dateinamen hast,
Einmal redest du von "PFDs", dann willst du dem Forum weismachen das du in einem Ordner 220 mal den gleichen Dateinamen hast,
Na, das habe ich so verstanden, dass 220 Dateien nach dem Muster existieren. Also müller.pdf, meier.pdf, schulze.pdf usw.
dann wieder Dateinamen mit Kommas und Leerzeichen...
Wieso? Geht doch. Ist nicht schön und macht einen Haufen Probleme beim Skripten. Aber es geht.
da die Ausführung von Skripts auf diesem System deaktiviert ist.
Ist doch klar ... einfach mal zu den Basics belesen und die Ausführungsrichtlinie anpassen dann lüppt dat ...https://www.msxfaq.de/code/powershell/ps_executionpolicy.htm
https://docs.microsoft.com/de-de/powershell/module/microsoft.powershell. ...
Ich bin der Lösung schon einen großen Schritt weiter.
Die Lösung steht oben schon fix und fertig .Set-Executionpolicy RemoteSigned
Dafür muss ich dann jedoch initial 250 dieser Befehle schreiben und bei neuen Berichten ständig aktualisieren
Dümmer geht's dann wirklich nümmer! => Tutorial zur FOR-SchleifeWärst du eventuell noch so freundlich mir bei folgendem Szenario zu helfen: An alle PDFs in einem Order soll eine bestimmte PDF am Ende hinzugefügt werden.
$quelle = "D:\Ordner"
$template = "D:\template.pdf"
$zielordner = "D:\output"
Get-ChildItem $quelle -File Filter *.pdf | %{
Merge-PDF -InputFile $_.Fullname,$template -Outputfile "$zielordner\$($_.Name)"
}
Zitat von @Baraban:
Schon sehr frustrierend zu sehen wie wenig Code man braucht um stundenlange Prozesse zu automatisieren. Besser spät als nie!
Da brauchst du nur mal in unsere Amtsstuben hier in DE schauen, da könnte man 80% der Mitarbeiter einsparen die da tag täglich monotone Fließband-Arbeiten verrichten die meistens vollkommen überflüssig ist wenn da mal jemand IT affines aufräumen würde.Schon sehr frustrierend zu sehen wie wenig Code man braucht um stundenlange Prozesse zu automatisieren. Besser spät als nie!
# quellordner 1
$source = "D:\Ordner\reports"
# quellordner 2
$source2 = "D:\Ordner\reports2"
# --------------------
# installiere nötiges Module wenn nicht vorhanden
if (!(Get-Module -ListAvailable -Name PSWritePDF)){
write-host "PSWritePDF Modul ist nicht installiert, starte eine elevierte Powershell um das Modul zu installieren ..." -F Yellow
start powershell -verb runas -ArgumentList '-c "Install-Module -Name PSWritePdf -Force"' -Wait
if (!(Get-Module -ListAvailable -Name PSWritePDF)){
write-error "Missing powershell module 'PSWritePDF'" -Category NotInstalled
exit 1
}
}
#-------------------------
# gruppiere die pdfs anhand des strings vom Anfang bis zum ersten Unterstrich im Dateinamen
(Get-ChildItem $source -File -Filter *.pdf) + (Get-ChildItem $source2 -File -Filter *.pdf) | group {$_.Basename.split('_')} | %{
if ($_.Count -gt 1){
try{
# PDFs in *.new Datei mergen
Merge-PDF -InputFile $_.Group.Fullname -outputfile "$source\$($_.Group.Name).new" -verbose -EA Stop
# Originaldatei aus Quellordner 1 entfernen
remove-item $_.Group.Fullname -Force
# *.new Datei in Originaldateiname umbenennen
rename-item "$source\$($_.Group.Name).new" -NewName "$source\$($_.Group.Name)"
}catch{
write-host $_.Exception -F Red
}
}
}