PDF: Alle Seiten entfernen, welche nicht definierten String enthalten
Moin
Ich habe schon ein wenig recherchiert aber nichts gescheites gefunden.
Ich habe eine PDF und möchte in diesem PDF alle Seiten löschen, welche nicht einen bestimmten String enthalten.
Wie stelle ich das am Besten an?
LG MbGb
Ich habe schon ein wenig recherchiert aber nichts gescheites gefunden.
Ich habe eine PDF und möchte in diesem PDF alle Seiten löschen, welche nicht einen bestimmten String enthalten.
Wie stelle ich das am Besten an?
LG MbGb
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 323689
Url: https://administrator.de/contentid/323689
Ausgedruckt am: 18.11.2024 um 22:11 Uhr
9 Kommentare
Neuester Kommentar
Wie immer, zunächst am besten mit mehr Informationen
Wie sieht der Workflow aus? Wann und an welcher Stelle soll die Prüfung erfolgen?
Wenn es nur eine PDF ist ... lösch die Seiten
VG
Ashnod
Sorry, da bin ich auch eher raus .... datt macht der eine oder andere hier in ein paar Minuten. Ich nicht
Bei einem Interaktiven Formular mit JavaScript gerne ... aber PS steck ich nicht drin.
Ashnod
Servus,
mit ein bißchen Powershell und der iTextSharp-DLL ist das schnell gemacht:
Hier das Code-Beispiel inkl. DLL zum Download
extract_pdf_pages_into_new_323689.zip
Zur Anpassung siehe den Variablenbereich im Kopf des Skripts.
Das Skript duchsucht alle Seiten des Dokuments nach einem bestimmten String und übernimmt nur diese Seite mit in ein neues Dokument.
In dem Beispiel-PDF im ZIP-File (demo.pdf) werden als Beispiel nur die Seiten übernommen auf welchen der String 'user@domain.de' enthalten ist, mit in das neue Dokument übernommen.
Grüße Uwe
Falls der Beitrag gefällt, seid so nett und unterstützt mich durch eine kleine Spende / If you like my contribution please support me and donate
mit ein bißchen Powershell und der iTextSharp-DLL ist das schnell gemacht:
Hier das Code-Beispiel inkl. DLL zum Download
extract_pdf_pages_into_new_323689.zip
Zur Anpassung siehe den Variablenbereich im Kopf des Skripts.
Das Skript duchsucht alle Seiten des Dokuments nach einem bestimmten String und übernimmt nur diese Seite mit in ein neues Dokument.
In dem Beispiel-PDF im ZIP-File (demo.pdf) werden als Beispiel nur die Seiten übernommen auf welchen der String 'user@domain.de' enthalten ist, mit in das neue Dokument übernommen.
# ------------------------------------------------------
# Pfad zum Dokument
$quelldokument = "$PSScriptRoot\demo.pdf"
# Pfad für das neue Dokument
$zieldokument = "$PSScriptRoot\new.pdf"
# Suchstring welcher vorhanden sein muss damit Seiten in das neue Dokument übernommen werden
$strSearch = 'user@domain.de'
#Pfad zur iTextsharp DLL
$PATH_ITEXTSHARP = "$PSScriptRoot\itextsharp.dll"
# ------------------------------------------------------
# Mindestens PS 3.0
if ($PSVersionTable.PSVersion.Major -lt 3){write-host "ERROR: Minimum Powershell Version 3.0 is required!" -F Yellow; return}
# iTextSharp DLL laden
Add-Type -Path $PATH_ITEXTSHARP
# Neue PDF-Datei mit den gewünschten Seiten erstellen
write-host "Verarbeite Dokument '$quelldokument' ..." -F Green
try{
$reader = new-object iTextSharp.text.pdf.PdfReader $quelldokument
$doc = new-object iTextSharp.text.Document
$fs = New-object System.IO.FileStream ($zieldokument, [System.IO.FileMode]::Create)
$writer = [iTextSharp.text.pdf.PdfWriter]::GetInstance($doc,$fs)
$doc.Open()
1..($reader.NumberOfPages) | ?{[iTextSharp.text.pdf.parser.PdfTextExtractor]::GetTextFromPage($reader,$_) -match [regex]::Escape($strSearch)} | %{
$doc.NewPage()
$writer.DirectContent.AddTemplate($writer.GetImportedPage($reader,$_),0,0)
}
}catch{
throw $_
}finally{
[void]$doc.Close();[void]$writer.Close;[void]$fs.Close();[void]$reader.close()
}
start $zieldokument
Falls der Beitrag gefällt, seid so nett und unterstützt mich durch eine kleine Spende / If you like my contribution please support me and donate
War zu erwarten
Schöne Woche wünsche ich.
Uwe
Schöne Woche wünsche ich.
Uwe