Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

PDF Datei auslesen und bei Stichwörtern ausdrucken

Frage Entwicklung

Mitglied: BlackVictory

BlackVictory (Level 1) - Jetzt verbinden

13.11.2014, aktualisiert 10:24 Uhr, 1811 Aufrufe, 2 Kommentare

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
Mitglied: colinardo
13.11.2014, aktualisiert 14.11.2014
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 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.
01.
' Konstanten 
02.
Const PDF_INPUT = "x:\PDF-input\Abrechnung1.pdf" 
03.
Const PDF_OUTPUT = "x:\PDF-input\fertig" 
04.
Const PDFTOTEXT = "x:\pdftotext.exe" 
05.
Const STRING_SEARCH = "ABC" 
06.
 
07.
' Variablen 
08.
Dim strTempFile, fso, objShell,objShellApp, strContent, strPathNew 
09.
 
10.
'Objekte 
11.
Set fso = CreateObject("Scripting.Filesystemobject") 
12.
Set objShell = CreateObject("Wscript.Shell") 
13.
Set objShellApp = CreateObject("Shell.Application") 
14.
 
15.
'Ausgabeordner erstellen 
16.
If Not fso.FolderExists(PDF_OUTPUT) Then fso.CreateFolder(PDF_OUTPUT) 
17.
'Datei in der temporär der PDF-Text extrahiert wird 
18.
strTempFile = objShell.ExpandEnvironmentStrings("%temp%") & "\extracted.txt" 
19.
 
20.
If fso.FileExists(PDF_INPUT) Then 
21.
	'Temporäre Datei löschen 
22.
	If fso.FileExists(strTempFile) Then fso.DeleteFile(strTempFile) 
23.
	'PDFtoText ausführen 
24.
	objShell.Run """" & PDFTOTEXT & """ -raw """ & PDF_INPUT & """ """ & strTempFile & """",0,True 
25.
	'Inhalt der Textdatei auslesen 
26.
	strContent = fso.OpenTextFile(strTempFile,1).ReadAll() 
27.
	'wenn Suchwort gefunden wurde 
28.
	If InStr(1,strContent,STRING_SEARCH,1) > 0 Then 
29.
		'PDF drucken 
30.
		objShellApp.ShellExecute PDF_INPUT, "","","print",0 
31.
		WScript.Sleep(3000) 
32.
	End If 
33.
	'neuer Pfad für die PDF-Datet (es wird das Datum und Uhrzeit angehängt, wegen Duplikaten) 
34.
	strPathNew = PDF_OUTPUT & "\" & fso.GetBaseName(PDF_INPUT) & "_" & Replace(Now,":","-") & ".pdf" 
35.
	 
36.
	'PDF verschieben 
37.
	On Error Resume Next 
38.
	fso.MoveFile PDF_INPUT, strPathNew 
39.
	While Err.Number <> 0 
40.
		WScript.Sleep 250 
41.
		Err.Clear 
42.
		fso.MoveFile file.Path, strPathNew 
43.
	Wend 
44.
End If 
45.
	 
46.
Set fso = Nothing 
47.
Set objShell = Nothing 
48.
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
Bitte warten ..
Mitglied: colinardo
15.12.2014 um 10:22 Uhr
Kommt hier noch Rückmeldung ?

Wenns das dann war, den Beitrag bitte noch auf gelöst setzen. Merci.
Bitte warten ..
Ähnliche Inhalte
Drucker und Scanner
Problem mit Ausdruck von PDF Dateien (4)

Frage von CountryBoy zum Thema Drucker und Scanner ...

Batch & Shell
Batch-Variable nach Stichworten aus TXT Datei durchsuchen (3)

Frage von 126594 zum Thema Batch & Shell ...

Batch & Shell
gelöst PDF Datei erzeugen über Kommandozeile (6)

Frage von Xaero1982 zum Thema Batch & Shell ...

Webbrowser
Firefox kann PDF-Dateien nicht anzeigen (3)

Frage von Hertie zum Thema Webbrowser ...

Neue Wissensbeiträge
Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(2)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Windows 10

Windows 10: Erste Anmeldung Animation deaktivieren

(3)

Anleitung von alemanne21 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Netzwerkprotokolle
gelöst Leiten "dumme" Switches VLAN-Tags mit durch? (26)

Frage von coltseavers zum Thema Netzwerkprotokolle ...

Netzwerkgrundlagen
Kann auf Freigabe nicht Zugreifen (17)

Frage von leon123 zum Thema Netzwerkgrundlagen ...

Windows Server
gelöst Neues KB für W10 1607 und W2K16 wieder mal nicht im WSUS 3.0, hat das noch jemand? (16)

Frage von departure69 zum Thema Windows Server ...

Windows Server
DC virtualisieren + wie sichern (SingleDC-Environment) (12)

Frage von KMUlife zum Thema Windows Server ...