Powershell: PDFs erstellen durch JPG. Was erstelle ich den Foreach Loop?
Hallo,
ich bin was das programmieren angeht ein Totalanfänger (mache das eher aus Hobby). Ich habe jedoch ein kleines Projekt, wo ich aus Jpg Dateien eine PDF erstellen möchte, jedoch benutze ich eine drittHersteller Software, die sehr gut funktioniert. http://www.compulsivecode.com/Project_ImageToPDF.aspx
Also man kann durch folgenden Befehlt alle .Jpg Dateien aus einem Ordner in eine PDF zusammenfügen durch die Software.
"C:\Users\{Username}\Desktop\App\ImageToPDForXPS.exe" "C:\Users\{Username}\Desktop\App\Output\OUTPUTNAME.PDF" "C:\Users\{Username}\Desktop\App\JPG\Sample PDF 1\*"
Jetzt habe ich jedoch mehrere Ordner, die jeweils jpg bilder enthalten. Ich möchte jeweils folgendes erreichen:
Der Outputname der App soll immer der Ordnername sein. (Sample PDF 1.pdf oder Sample PDF 2.pdf).
Der Input soll jeweils der Ordnerinhalt sein.
Deshalb habe ich ein kleines Programm geschrieben in Powershell, jedoch verstehe ich nicht, wie ich die Duplikate entferne.
Mein Programmordnerstruktur sieht wie folgt aus:
APP
ImageToPDForXPS.exe
Pdf.ps
=>JPG=>SAMPLE PDF 1 (jeweils die Bilder)
=>JPG=>SAMPLE PDF 2 (jeweils die Bilder)
=>OUTPUT
Hier ist der Code:
Ich danke vielmals um die Hilfe, wie ich das hinkriegen könnte.
ich bin was das programmieren angeht ein Totalanfänger (mache das eher aus Hobby). Ich habe jedoch ein kleines Projekt, wo ich aus Jpg Dateien eine PDF erstellen möchte, jedoch benutze ich eine drittHersteller Software, die sehr gut funktioniert. http://www.compulsivecode.com/Project_ImageToPDF.aspx
Also man kann durch folgenden Befehlt alle .Jpg Dateien aus einem Ordner in eine PDF zusammenfügen durch die Software.
"C:\Users\{Username}\Desktop\App\ImageToPDForXPS.exe" "C:\Users\{Username}\Desktop\App\Output\OUTPUTNAME.PDF" "C:\Users\{Username}\Desktop\App\JPG\Sample PDF 1\*"
Jetzt habe ich jedoch mehrere Ordner, die jeweils jpg bilder enthalten. Ich möchte jeweils folgendes erreichen:
Der Outputname der App soll immer der Ordnername sein. (Sample PDF 1.pdf oder Sample PDF 2.pdf).
Der Input soll jeweils der Ordnerinhalt sein.
Deshalb habe ich ein kleines Programm geschrieben in Powershell, jedoch verstehe ich nicht, wie ich die Duplikate entferne.
Mein Programmordnerstruktur sieht wie folgt aus:
APP
ImageToPDForXPS.exe
Pdf.ps
=>JPG=>SAMPLE PDF 1 (jeweils die Bilder)
=>JPG=>SAMPLE PDF 2 (jeweils die Bilder)
=>OUTPUT
Hier ist der Code:
$parent = (Get-Item -Path '.\' -Verbose).FullName
#Path to your ImageToPDFFor.exe
$tool = $parent + '\ImageToPDForXPS.exe'
#Directory containing the .JPG files that will be converted
$inputDir = $parent + '\JPG\'
#Output path where the PDF files will be saved
$outputDir = $parent + '\Output\'
#This will get all the files in the jpg directory
$jpgs = get-childitem $inputDir -recurse | where {$_.Extension -match "jpg"}
foreach ($jpg in $jpgs)
{
$inputpath = Split-Path -Path $jpg.FullName
#Write-Output ($inputpath)
$inputpathcorrected = $inputpath + "\*"
#Write-Output ($inputpathcorrected)
$outputpdf = Split-Path (Split-Path $jpg.FullName -Parent ) -Leaf
#Write-Output ($outputpdf)
$outputpdfcorrected =$outputDir + $outputpdf + ".pdf"
Write-Output ($outputpdfcorrected)
}
& $tool $outputpdfcorrected $inputpathcorrected
EXIT
Ich danke vielmals um die Hilfe, wie ich das hinkriegen könnte.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 651201
Url: https://administrator.de/forum/powershell-pdfs-erstellen-durch-jpg-was-erstelle-ich-den-foreach-loop-651201.html
Ausgedruckt am: 20.04.2025 um 15:04 Uhr
6 Kommentare
Neuester Kommentar
Hallo,
Was genau ist Deine Frage?
Soll das pro Verzeichnis ein PDF werden? Dann musst Du Verzeichnisse suchen, nicht Dateien.
Oder willst - egal wo jpgs drin sind, immer pro solch ein Verzeichnis ein PDF schreiben?
Dann schreib alle Verzeichnisse aus Split-Path (ohne weitere Argumente als -Path) in ein Array. Dann kannst Du die Duplikate aus dem Array mittels Sort-Object -Unique entfernen. Das Array kannst Du Dann für Deine Schleife nehmen - innerhalb dieser rufst Du das Tool auf.
Falls es aber nur um 2 Verzeichnisse geht, würde ich dass Array direkt mit den Pfaden belegen und nich aufwändig suchen.
Grüße
lcer
Was genau ist Deine Frage?
Soll das pro Verzeichnis ein PDF werden? Dann musst Du Verzeichnisse suchen, nicht Dateien.
Oder willst - egal wo jpgs drin sind, immer pro solch ein Verzeichnis ein PDF schreiben?
Dann schreib alle Verzeichnisse aus Split-Path (ohne weitere Argumente als -Path) in ein Array. Dann kannst Du die Duplikate aus dem Array mittels Sort-Object -Unique entfernen. Das Array kannst Du Dann für Deine Schleife nehmen - innerhalb dieser rufst Du das Tool auf.
Falls es aber nur um 2 Verzeichnisse geht, würde ich dass Array direkt mit den Pfaden belegen und nich aufwändig suchen.
Grüße
lcer
Hallo,
also runterladen wird hier sicher niemand irgendwas.
Lies mal Example 7 aus https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell. ...
Grüße
lcer
also runterladen wird hier sicher niemand irgendwas.
Lies mal Example 7 aus https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell. ...
Grüße
lcer