thomasdummie
Goto Top

VBA für Metadaten PDF mit Unterordner

Hallo, in Word und Powerpoint komme ich gut zurecht. Aber Excel.....
Nun habe ich folgendes Problem: Ich habe hunderte von PDF-Dateien, in Ordnern und Unterordnern, teilweise bis zu 800MB groß und manchmal bis zu 8.000 Seiten ein PDF.

Ich würde diese PDF-Dateien gern katalogisieren, indem ich den Pfad(vielleicht sogar interaktiv), den Dateinamen und die Seitenzahl erfassen möchte.

Bei meiner Suche nach Hilfe stieß ich auf zwei VBA-Skripte. Ich kann diese in Excel einsetzen und auch die Mappe produzieren, daran fehlt es also nicht. face-smile

Eines der Skripte generiert Pfad und Dateiname,
https://de.extendoffice.com/documents/excel/2994-excel-list-all-files-in ...

das andere den Dateinamen und die Seitenzahlen (leider nicht zuverlässig).
https://de.extendoffice.com/documents/excel/5330-excel-vba-pdf-page-coun ...

Was fehlt ist die Erfassung des Links (auf die ich notfalls verzichten kann), aber auf jeden Fall die Kombination beider Skripte in einem und die zuverlässige Extraktion der Seiten. Bei Ordnern mit vielen PDFs bricht die Zählung ab, weil der Arbeitsspeicher überfordert ist.

Hat da jemand eine Idee oder irgendwo etwas passendes gefunden? Wenn es etwas Gutes außerhalb von Excel gibt nehme ich auch das face-smile. Ich bin aber reiner Enduser, also Programmier-Dummie.

Vielleicht erbarmt sich jemand. Besten Dank im Voraus.

Thomas

Content-Key: 7868171056

Url: https://administrator.de/contentid/7868171056

Printed on: July 21, 2024 at 22:07 o'clock

Mitglied: 7426148943
Solution 7426148943 Jul 16, 2023 updated at 12:22:35 (UTC)
Goto Top
Das hier runterladen
https://www.nuget.org/api/v2/package/iTextSharp/5.5.13.3
Dann das File in *.zip umbenennen und aus dem Verzeichnis "lib" die "itextsharp.dll" extrahieren.
Dann in folgendem Powershell-Skript die Pfade zur extrahierten DLL und die Quell und Zielpfade anpassen.
# itextsharp laden
Add-Type -Path "D:\itextsharp.dll"  
# Ordner mit den PDF-Dateien
$folder = 'D:\PDF'  
# Ausgabedatei
$export_file = 'D:\ausgabe.csv'  
Get-ChildItem $folder -File -Filter *.pdf -Recurse | select DirectoryName,Name,@{n='Pages';e={$r = [iTextSharp.text.pdf.PdfReader]::new($_.Fullname);$r.NumberOfPages;$r.Dispose()}} | export-csv $export_file -Delimiter ";" -NoTypeInformation -Encoding UTF8  
Fertig.

hth
Zeppel