Powershell - Seitenanzahl aus PDF ermitteln
Hallo zusammen,
ich versuche gerade ein kleines Skript zu schreiben, das mir die Seitenanzahl der PDFs in einem Ordner ermittelt. Aber so einfach wie bei Textdateien wird das wohl nicht funktionieren.
Braucht man dafür wieder eine externe Library oder hat Powershell mit was an Board um Werte einer PDF auszulesen. Im Idealfall liegt die Anzahl der Seiten in den Metadaten.
Mfg
Pat
ich versuche gerade ein kleines Skript zu schreiben, das mir die Seitenanzahl der PDFs in einem Ordner ermittelt. Aber so einfach wie bei Textdateien wird das wohl nicht funktionieren.
Braucht man dafür wieder eine externe Library oder hat Powershell mit was an Board um Werte einer PDF auszulesen. Im Idealfall liegt die Anzahl der Seiten in den Metadaten.
Mfg
Pat
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 508502
Url: https://administrator.de/contentid/508502
Ausgedruckt am: 05.11.2024 um 17:11 Uhr
9 Kommentare
Neuester Kommentar
Mit iTextSharp bzw itext-dotnet z.B.
Oder auch mit pdftk
https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/
RAW auszulesen ist unzuverlässig und funktioniert nicht mit jedem PDF. Man sollte das PDF mit einem Parser korrekt parsen lassen.
Add-Type -Path "D:\DLLs\itextsharp.dll"
$reader = New-Object iTextSharp.text.pdf.PdfReader "D:\Test.pdf"
$reader.NumberOfPages
https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/
pdftk file.pdf dump_data output
RAW auszulesen ist unzuverlässig und funktioniert nicht mit jedem PDF. Man sollte das PDF mit einem Parser korrekt parsen lassen.
Moin,
Zitat von @Pat.bat:
ich versuche gerade ein kleines Skript zu schreiben, das mir die Seitenanzahl der PDFs in einem Ordner ermittelt. Aber so einfach wie bei Textdateien wird das wohl nicht funktionieren.
wie kommst du darauf, dass das bei Textdateien einfacher wäre?ich versuche gerade ein kleines Skript zu schreiben, das mir die Seitenanzahl der PDFs in einem Ordner ermittelt. Aber so einfach wie bei Textdateien wird das wohl nicht funktionieren.
Doch er findet die DLL nur der Namespace wird nicht gefunden
Falsche DLL genommen die den neueren Namespace nutzt . itext-dotnet?
Der Code ist für das alte iTextSharp 5.5 API
Falsche DLL genommen die den neueren Namespace nutzt . itext-dotnet?
Der Code ist für das alte iTextSharp 5.5 API
Dann hastes für die falsche NET Version geladen.
Noch als Ergänzung, mit dem neuen iText7-dotnet sieht das so aus (getestet):
So Thema erledigt, isch bin raus....
Add-Type -Path "D:\DLLs\itext.kernel.dll"
$doc = New-Object iText.Kernel.Pdf.PdfDocument((New-Object iText.Kernel.Pdf.PdfReader "D:\test.pdf"))
$doc.GetNumberOfPages()
$doc.Close()
So Thema erledigt, isch bin raus....
So bekomme ich nun die Seitenanzahl der PDFs raus
Geht auch mit obigem Code auch einwandfrei, du machst es nur falsch . Mach ich schon jahrelang damit funktioniert überall. Naja, dann lern mal schön.dir "$Path\*.pdf"
Fällt dir auf die Schnauze wenn der Ordner einen Ordner mit der Endung ".pdf" hat . bei sowas hinten dran immer noch ein -File, dann werden wirklich nur Dateien zurückgeliefert.