dominik50
Goto Top

Seitenzahlen von PDF-Dateien vergleichen

Hallo

gibt es eine Möglichkeit 2 pdf Dateien zu vergleichen ob Sie die gleiche Anzahl haben?
Wenn ja soll eine weiter Batch ausgelöst werden

Danke

Content-ID: 668326

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

Ausgedruckt am: 21.11.2024 um 13:11 Uhr

mbehrens
mbehrens 23.09.2024 um 20:03:46 Uhr
Goto Top
Zitat von @Dominik50:

gibt es eine Möglichkeit 2 pdf Dateien zu vergleichen ob Sie die gleiche Anzahl haben?

exiftool kann die Anzahl der Seiten liefern.
Dominik50
Dominik50 23.09.2024 um 20:57:13 Uhr
Goto Top
Hast du damit Erfahrung? kenn das Tool gar nicht
DivideByZero
DivideByZero 23.09.2024 aktualisiert um 22:34:17 Uhr
Goto Top
Moin,

kurz und knackig mit der Powershell: [Powershell - Seitenanzahl aus PDF ermitteln].

Gruß

DivideByZero
Dominik50
Dominik50 24.09.2024 um 00:01:45 Uhr
Goto Top
Danke für die Infos. Werde mir hier jemanden suchen müssen der mir das macht. Mir fehlt da das wissen
Dominik50
Dominik50 24.09.2024 um 03:45:01 Uhr
Goto Top
Wie wäre es wenn ich die Seiten einzeln im Ordner habe und 2 Ordner vergleichen möchte und wenn gleich soll der Batch den nächsten Schritt machen?
DivideByZero
DivideByZero 24.09.2024 um 09:02:46 Uhr
Goto Top
?
Ist doch viel komplizierter. Da muss erst die PDF aufgesplittet und dann einzeln abgeglichen werden?
Wie gesagt, mit Powershell ist das schnell erledigt.
Lies Dir oben den Link durch, abtippen, austesten, einfach mal damit herumspielen.

Im Grunde besteht das aus:

1. iText7-dotnet herunterladen
2. Powershell-Code kopieren und ausführen:
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()

Dann ergänzen um Deine gewünschte if-Abfrage ergänzen.

Wie jeder von uns, muss man halt klein anfangen und etwas Neues lernen. Ist aber nicht schwierig.

Und wenn alle Stricke reißen: ChatGPT fragen, testen, anpassen....

Gruß

DivideByZero
150704
150704 29.09.2024 aktualisiert um 10:47:08 Uhr
Goto Top
# folder 1
$folder1 = "d:\ordner1"  
# folder 2
$folder2 = "d:\ordner2"  
# stop script on any error
$ErrorActionPreference = "Stop"  
# path to IText dll
Add-Type -Path "D:\DLLs\itext.kernel.dll"  
# group files of both folders by name
$groups = Get-ChildItem $folder1,$folder2 -File -Filter *.pdf | group-object Name
# if there are orphaned files with no matching  partner in the other folder, exit
if ($groups | ? Count -eq 1){
    write-warning "Folders do not have an equal number of files."  
    return
}
# compare page count of each pair
foreach($group in $groups){
    # create pdf readers
    $doc1 = New-Object iText.Kernel.Pdf.PdfDocument((New-Object iText.Kernel.Pdf.PdfReader $group.Group[0].Fullname))
    $doc2 = New-Object iText.Kernel.Pdf.PdfDocument((New-Object iText.Kernel.Pdf.PdfReader $group.Group[1].Fullname))
    # store page count 
    $num1 = $doc1.GetNumberOfPages()
    $num2 = $doc2.GetNumberOfPages()
    # close an dispose reader objects
    $doc1.Close(); $doc1.Dispose()
    $doc2.Close(); $doc2.Dispose()
    # if page count differs exit
    if($num1 -ne $num2){
       write-warning "File '$($group.Name)' is different. PageCount Folder1: $num1 , Folder2: $num2"  
       return
    }
}
# all lines wich follow will be executed only if all file pairs have an equal page count
write-host "All files have matching page count."