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, 1710 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 ..
Neuester Wissensbeitrag
Festplatten, SSD, Raid

12TB written pro SSD in 2 Jahren mit RAID5 auf Hyper-VServer

Erfahrungsbericht von Lochkartenstanzer zum Thema Festplatten, SSD, Raid ...

Ähnliche Inhalte
VB for Applications
gelöst PDF Datei auslesen und per VBA in Excel schreiben (3)

Frage von Julian8990 zum Thema VB for Applications ...

VB for Applications
gelöst Bestimmte Spalten aus CSV-Datei auslesen (VBS) (9)

Frage von Gurkenhobel zum Thema VB for Applications ...

Microsoft Office
gelöst Excel Pdf Datei als Icon Symbol in Word einfügen per Drag and drop? (4)

Frage von Geforce zum Thema Microsoft Office ...

Batch & Shell
gelöst PowerShell, Log Datei auslesen, bei Änderungen E-Mail senden (12)

Frage von swissbull zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (34)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...