PDF Datei auslesen und bei Stichwörtern ausdrucken
Sehr geehrter Community,
ich sitze mal wieder an einem neuen Problem.
es wird in unregelmäßigen Abständen eine PDF Datei in einem Ordner erstellt
x:\PDF-input\Abrechnung1.pdf
Nun brauche ich eine Möglichkeit die Datei Abrechnung1.pdf zu analysieren (ORC vorhanden).
Wenn der Begriff "ABC" vorkommt, dann soll die Datei Abrechnung1.pdf über einen Netzwerkdrucker ausgedruckt werden und in einen Ordner verschoben werden.
Sollte der Begriff "ABC" nicht in der Datei Vorkommen, dann soll die Datei einfach nur verschoben werden ohne ausgedruckt zu werden.
Habe ich eine Möglichkeit dies zu machen ?
Kann ich sowas mit einem Batch-Script schaffen ?
Als Script würde ich es folgendesmaßen machen.
1. Durchsuche das Verzeichnis x:\PDF-input nach PDF Dateien und schreibe diese zeilenweiße in eine Text-Datei
2. öffne die PDF-Datei welche in der ersten Zeile genannt ist und durchsuche diese Datei nach dem Stichwort "ABC"
3. Wenn "ABC" vorhanden ist, Datei an drucker senden und in den Ordner x:\PDF-inpunt\fertig verschieben.
4. ansonsten Datei nach x:\PDF-input\fertig verschieben
Diese Batch Datei würde ich einmal in der Sekunde ausführen lassen. Rechenleistung sollte diese ja nicht benötigen.
Es wird pro viertel Stunde vielleicht eine PDF-Datei zu analysieren sein.
Hat jemand von euch einen Lösungsvorschlag ?
Soweit kann ich alles Programmieren, nur das Umwandeln des Inhaltes von der PDF-Datei in eine TXT-Datei schaffe ich nicht, bzw. das Auslesen der PDF-Datei nach dem Schlüsselwort.
Mit freundlichen Grüßen und herzlichen Danke schon mal im Voraus
Wolfram
ich sitze mal wieder an einem neuen Problem.
es wird in unregelmäßigen Abständen eine PDF Datei in einem Ordner erstellt
x:\PDF-input\Abrechnung1.pdf
Nun brauche ich eine Möglichkeit die Datei Abrechnung1.pdf zu analysieren (ORC vorhanden).
Wenn der Begriff "ABC" vorkommt, dann soll die Datei Abrechnung1.pdf über einen Netzwerkdrucker ausgedruckt werden und in einen Ordner verschoben werden.
Sollte der Begriff "ABC" nicht in der Datei Vorkommen, dann soll die Datei einfach nur verschoben werden ohne ausgedruckt zu werden.
Habe ich eine Möglichkeit dies zu machen ?
Kann ich sowas mit einem Batch-Script schaffen ?
Als Script würde ich es folgendesmaßen machen.
1. Durchsuche das Verzeichnis x:\PDF-input nach PDF Dateien und schreibe diese zeilenweiße in eine Text-Datei
2. öffne die PDF-Datei welche in der ersten Zeile genannt ist und durchsuche diese Datei nach dem Stichwort "ABC"
3. Wenn "ABC" vorhanden ist, Datei an drucker senden und in den Ordner x:\PDF-inpunt\fertig verschieben.
4. ansonsten Datei nach x:\PDF-input\fertig verschieben
Diese Batch Datei würde ich einmal in der Sekunde ausführen lassen. Rechenleistung sollte diese ja nicht benötigen.
Es wird pro viertel Stunde vielleicht eine PDF-Datei zu analysieren sein.
Hat jemand von euch einen Lösungsvorschlag ?
Soweit kann ich alles Programmieren, nur das Umwandeln des Inhaltes von der PDF-Datei in eine TXT-Datei schaffe ich nicht, bzw. das Auslesen der PDF-Datei nach dem Schlüsselwort.
Mit freundlichen Grüßen und herzlichen Danke schon mal im Voraus
Wolfram
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 254708
Url: https://administrator.de/contentid/254708
Ausgedruckt am: 22.11.2024 um 13:11 Uhr
2 Kommentare
Neuester Kommentar
Hallo Wolfram,
das ist kein Problem z.B. mit VBS. Eine Frage: Suchst du immer nur nach der einen Datei Abrechnung1.pdf, oder sollen alle PDF-Dateien in dem Ordner nach dem Suchwort durchsucht werden ?
Für den Fall das immer nur das eine File Abrechnung1.pdf durchsucht werden muss, kannst du folgendes VBS-Script nehmen.
Für das Script benötigst du das Kommandozeilentool [ftp://ftp.foolabs.com/pub/xpdf/xpdfbin-win-3.04.zip pdf2text]. Aus dem Zipfile speicherst du dir die "pdf2text.exe" z.B. nach x:\pdf2text.exe. Die Pfade und Konstanten in den ersten Zeilen sind an deine Bedürfnisse anzupassen. Der verschobenen Datei wird immer noch das Datum und Uhrzeit angehängt damit Duplikate verhindert werden.
Grüße Uwe
das ist kein Problem z.B. mit VBS. Eine Frage: Suchst du immer nur nach der einen Datei Abrechnung1.pdf, oder sollen alle PDF-Dateien in dem Ordner nach dem Suchwort durchsucht werden ?
Für den Fall das immer nur das eine File Abrechnung1.pdf durchsucht werden muss, kannst du folgendes VBS-Script nehmen.
Für das Script benötigst du das Kommandozeilentool [ftp://ftp.foolabs.com/pub/xpdf/xpdfbin-win-3.04.zip pdf2text]. Aus dem Zipfile speicherst du dir die "pdf2text.exe" z.B. nach x:\pdf2text.exe. Die Pfade und Konstanten in den ersten Zeilen sind an deine Bedürfnisse anzupassen. Der verschobenen Datei wird immer noch das Datum und Uhrzeit angehängt damit Duplikate verhindert werden.
' Konstanten
Const PDF_INPUT = "x:\PDF-input\Abrechnung1.pdf"
Const PDF_OUTPUT = "x:\PDF-input\fertig"
Const PDFTOTEXT = "x:\pdftotext.exe"
Const STRING_SEARCH = "ABC"
' Variablen
Dim strTempFile, fso, objShell,objShellApp, strContent, strPathNew
'Objekte
Set fso = CreateObject("Scripting.Filesystemobject")
Set objShell = CreateObject("Wscript.Shell")
Set objShellApp = CreateObject("Shell.Application")
'Ausgabeordner erstellen
If Not fso.FolderExists(PDF_OUTPUT) Then fso.CreateFolder(PDF_OUTPUT)
'Datei in der temporär der PDF-Text extrahiert wird
strTempFile = objShell.ExpandEnvironmentStrings("%temp%") & "\extracted.txt"
If fso.FileExists(PDF_INPUT) Then
'Temporäre Datei löschen
If fso.FileExists(strTempFile) Then fso.DeleteFile(strTempFile)
'PDFtoText ausführen
objShell.Run """" & PDFTOTEXT & """ -raw """ & PDF_INPUT & """ """ & strTempFile & """",0,True
'Inhalt der Textdatei auslesen
strContent = fso.OpenTextFile(strTempFile,1).ReadAll()
'wenn Suchwort gefunden wurde
If InStr(1,strContent,STRING_SEARCH,1) > 0 Then
'PDF drucken
objShellApp.ShellExecute PDF_INPUT, "","","print",0
WScript.Sleep(3000)
End If
'neuer Pfad für die PDF-Datet (es wird das Datum und Uhrzeit angehängt, wegen Duplikaten)
strPathNew = PDF_OUTPUT & "\" & fso.GetBaseName(PDF_INPUT) & "_" & Replace(Now,":","-") & ".pdf"
'PDF verschieben
On Error Resume Next
fso.MoveFile PDF_INPUT, strPathNew
While Err.Number <> 0
WScript.Sleep 250
Err.Clear
fso.MoveFile file.Path, strPathNew
Wend
End If
Set fso = Nothing
Set objShell = Nothing
Set objShellApp = Nothing
Diese Batch Datei würde ich einmal in der Sekunde ausführen lassen.
ist ein bißchen oft ... wenn nur jede 15 Minuten ein PDF zu verarbeiten ist.Grüße Uwe