Powershell, PDF
Hallo zusammen,
ich komme mit der Suche nicht weiter ...
Situation: ca. 2000 PDF-Dateien (Downloads von E-Mails). In der ersten Zeile der PDF-Dateien steht der Betreff. Diesen gilt es zu extrahieren und in eine Datei zu schreiben.
Windows 10, Powershell 5.0
Die PDF-Dateien wurden über einen E-Mail-Provider generiert - keine weitere Info verfügbar.
Mein Problem: Ich kann genau an diese Zeile nicht herankommen (mit Powershell). Das cmdlet Get-Content ist hier allem Anschein nach nicht das Werkzeug der Wahl.
Es sollen keine Tools verwendet werden. Ein PDF-Reader ist ebenfalls keine Option. Es muss mit Bordmitteln gelöst werden - ohne Wenn und Aber.
Hat jemand einen Tritt für mich?
Gruß in die Runde aus meinem Brückentag
Ankh
ich komme mit der Suche nicht weiter ...
Situation: ca. 2000 PDF-Dateien (Downloads von E-Mails). In der ersten Zeile der PDF-Dateien steht der Betreff. Diesen gilt es zu extrahieren und in eine Datei zu schreiben.
Windows 10, Powershell 5.0
Die PDF-Dateien wurden über einen E-Mail-Provider generiert - keine weitere Info verfügbar.
Mein Problem: Ich kann genau an diese Zeile nicht herankommen (mit Powershell). Das cmdlet Get-Content ist hier allem Anschein nach nicht das Werkzeug der Wahl.
Es sollen keine Tools verwendet werden. Ein PDF-Reader ist ebenfalls keine Option. Es muss mit Bordmitteln gelöst werden - ohne Wenn und Aber.
Hat jemand einen Tritt für mich?
Gruß in die Runde aus meinem Brückentag
Ankh
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 350594
Url: https://administrator.de/contentid/350594
Ausgedruckt am: 04.12.2024 um 08:12 Uhr
6 Kommentare
Neuester Kommentar
also streng genommen installierst du nix ;)
Du brauchst da nur eine DLL von ... und die kann sonst wo im Netzwerk liegen.
So Suche ich bei mir in PDFs nach einem String mit Rechnungsnummern
Du brauchst da nur eine DLL von ... und die kann sonst wo im Netzwerk liegen.
So Suche ich bei mir in PDFs nach einem String mit Rechnungsnummern
Add-Type -Path \\share\dlls\itextsharp.dll
$i = 1
Get-ChildItem "\\server\pdfs" -Filter *.* |
Foreach-Object {
$reader = New-Object iTextSharp.text.pdf.pdfreader -ArgumentList $_.FullName
#for ($page = 1; $page -le $reader.NumberOfPages; $page++)
#{
$strategy = new-object 'iTextSharp.text.pdf.parser.SimpleTextExtractionStrategy'
$currentText = [iTextSharp.text.pdf.parser.PdfTextExtractor]::GetTextFromPage($reader, 1, $strategy);
[string[]]$Text = [system.text.Encoding]::UTF8.GetString([System.Text.ASCIIEncoding]::Convert( [system.text.encoding]::default , [system.text.encoding]::UTF8, [system.text.Encoding]::Default.GetBytes($currentText)));
#}
$Reader.Close();
$result = [regex]::matches( $text, '((RE|GS)\d{10})' ) | select -expa value
[string]::Format(“{0};{1};{2}”,$i,$result,$_.FullName)
$text = ""
$i++
}
Servus Ankh.
Muss man bei iTextSharp beispielsweise nicht, es reicht die DLL irgendwo zu platzieren.
Beispiele dazu habe ich hier schon einige gepostet.
Skript zum Auslesen und Automatischen Versenden von E-Mails
Wenn du es mit Bordmitteln machen willst, das geht, ist aber einiger Aufwand da du quasi einen eigenen Textparser schreiben musst der den Text aus den Binärdaten extrahiert.
Bei Interesse gerne PN.
Grüße Uwe
Muss man bei iTextSharp beispielsweise nicht, es reicht die DLL irgendwo zu platzieren.
Beispiele dazu habe ich hier schon einige gepostet.
Skript zum Auslesen und Automatischen Versenden von E-Mails
Wenn du es mit Bordmitteln machen willst, das geht, ist aber einiger Aufwand da du quasi einen eigenen Textparser schreiben musst der den Text aus den Binärdaten extrahiert.
Bei Interesse gerne PN.
Grüße Uwe