BlackVictory Geschrieben 13. November 2014 Geschrieben 13. November 2014 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 Zitieren
Tiro Geschrieben 13. November 2014 Geschrieben 13. November 2014 Ich denke mal es ist nicht schön, aber sollte funktionieren: How to extract text from pdf in script on Linux? - Super User (Abiword gibt es auch für Windows). Der Rest sollte ein Powershell 5-Zeiler sein (9 Zeilen, wenn es hübsch aussehen soll *bg*) Zitieren
orioon Geschrieben 13. November 2014 Geschrieben 13. November 2014 Eventuell hilft dir auch der iFilter weiter: Adobe - Acrobat : For Windows : PDF iFilter 64 11.0.01 Damit kann man PDFs unter 64bit Windows Systemen von der Suchfunktion indizieren lassen, wodurch du diese abfragen könntest statt das pdf direkt öffnen zu müssen. Bei 32bit Systemen bedarf es keiner weiteren Software dafür. Zitieren
BlackVictory Geschrieben 14. November 2014 Autor Geschrieben 14. November 2014 (bearbeitet) Danke für die beiden Tipps. Mein Code schaut bis jetzt so aus: :start ren *.pdf 1.pdf pdftotext.exe 1.pdf 1.txt findstr /l /i /m /c:.DDC 1.txt Hier brauch ich noch eine WENN Abfrage, bedeutet wenn er den Begriff "DDC" in der Text Datei findet, dann soll er folgenden Befehl ausführen print /d:\\10.10.10.10\1-ik1 1.pdf Hier kann ich natürlich nicht direkt die PDF ausdrucken, da kommen nur komische Schriftzeichen, gibt es hier eine andere Möglichkeit ? /timeout /t 2 /nobreak GOTO start Vielleich kann mir einer noch nen Vorschlag machen ??? Das mit der Abfrage sollte ziemlich leicht zu realisieren sein, fragt mich aber nicht wie Das Probelm sehe ich eher in dem Drucken der PDF-Datei. Es würde auch gehen, wenn ich die Textdatei ausdrucken würde, aber nur wenn der Zeilenumbruch mit aus der PDF-Datei formatiert werden würde. Bearbeitet 14. November 2014 von BlackVictory Zitieren
orioon Geschrieben 14. November 2014 Geschrieben 14. November 2014 Hi, hier ein Beispiel, wie du mit Sumatra drucken kannst: https://code.google.com/p/sumatrapdf/wiki/CommandLineArguments Dein Code funktioniert aber nur mit einem PDF pro Ordner. Ansonsten passiert folgendes: Z:\test>ren *.txt 1.txt A duplicate file name exists, or the file cannot be found. Bei findstr kannst du das mit dem errorlevel problemlos überprüfen. if errorlevel in Batch korrekt nutzen | Programmierung | IMA - Informationen Mal Anders Ich könnte das natürlich auch fix schreiben, aber dann wäre ja der Lerneffekt weg Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.