Top-Themen

Aktuelle Themen (A bis Z)

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

Stelle aus jpg auslesen via ocr und als pdf speichern mit dem ausgelesenen als Dateinamen

Mitglied: jehlenco

jehlenco (Level 1) - Jetzt verbinden

19.05.2014, aktualisiert 13:16 Uhr, 1471 Aufrufe, 9 Kommentare

Moin Moin liebe Forumianer,

ich bastle derzeit immernoch an meinem Labelprogramm und stehe nun vor dem letzten großen Problem.
Um das ganze Projekt einmal kurz zu erläutern hier eine grobe Skizze:

[2]

- Ich habe einen Windows Server wo Microsoft Navision drauf läuft, dieser speichert Lieferscheine im PDF Format in einen Ordner namens "deliver". Der Dateiname hierbei ist die Lieferscheinnummer
- Auf dem Windows Server läuft ausserdem ein Programm von DPD das automatisiert und synchronisiert Labels aus Navision heraus erstellt. Bisher Druckt das Programm dann morgens munter die Labels und die Mitarbeiter im Lager müssen diese Dann ausschneiden zuweisen und in das Plastikfach am Karton vor den Lieferschein legen.

Zusammen mit einem Mitglied hier aus dem Forum habe ich ein Script basierend auf einer Batch Datei das folgendes macht:

ORDNER A (Alle Dateien sind PDF's und fortlaufenden Dateinamen, ( Lieferscheinnummer))
ORDNER B (Alle Dateien sind PDF's und fortlaufenden Dateinamen, ( Lieferscheinnummer gleich wie bei Ordner A)) ->

Hier wird nun Datei 001 aus Ordner A mit der Datei aus Ordner B 001 auf der ersten Seite Wassergemarkt. Sinn des ganzen ist es das oben auf dem Lieferschein das DPD Label ist und die Mitarbeiter den schein lediglich falten müssen und in das Plastik Fach am Karton stecken müssen ohne etwas auszuschneiden bzw zuzuweisen. Anschließend erstellt das Batch Script eine Log und zeichnet auf was sie getan hat und druckt die fertig erstellten Datei(en). Nach erfolgreichem Druck werden dann auch beide Ordner (A,B) gelöscht und die zusammengefügte Datei wird in einen Ordner mit Datum verschoben als Backup.

Nun aber zu meinem Problem, ich muss dem DPD Programm irgendwie sagen das er die Labels automatisiert speichert in einer Datei die den des Lieferscheins hat, dieser steht immer an der gleichen Stelle auf dem Label.
Mit GOCR oder so könnte mann das ganze auslesen und speichern via BAT oder?

Hier nochmal der Link zum aktuellen Script:

01.
@echo off & setlocal 
02.
 
03.
 
04.
set temptxt=temp.txt 
05.
set tempordner1=%temp%\tempordner1.txt 
06.
set tempordner2=%temp%\tempordner2.txt 
07.
set ordner1=deliver 
08.
set ordner2=label 
09.
set ordner3=out 
10.
set success=log\log.txt 
11.
set printtxt=%temp%\print.txt 
12.
set printer="HIER BITTE DEN DRUCKERNAMEN EINGEBEN" 
13.
 
14.
TITLE Deliver Stamp Programm  
15.
COLOR F0 
16.
ECHO. 
17.
 
18.
 
19.
REM --------------------------------------- 
20.
REM Abfrage ob sie wirklich Labeln moechten 
21.
REM --------------------------------------- 
22.
 
23.
 
24.
 
25.
:LOOP 
26.
SET Choice= 
27.
SET /P Choice="Deliver Stamp Programm version 1.0 | Lieferscheine Labeln? ((Y)es/(N)o)" 
28.
 
29.
IF NOT '%Choice%'=='' SET Choice=%Choice:~0,1% 
30.
 
31.
ECHO. 
32.
IF /I '%Choice%'=='Y' GOTO ACCEPTED 
33.
IF /I '%Choice%'=='N' GOTO REJECTED 
34.
ECHO Bitte auswaehlen Y (fuer Ja) oder N (fuer Nein) ! 
35.
ECHO. 
36.
GOTO Loop 
37.
 
38.
 
39.
REM --------------------------------------- 
40.
REM Abfrage negativ 
41.
REM --------------------------------------- 
42.
 
43.
 
44.
 
45.
:REJECTED 
46.
ECHO Labeln abgebrochen 
47.
ECHO Sie koennen das Programm nun schliessen. 
48.
GOTO END 
49.
 
50.
 
51.
REM --------------------------------------- 
52.
REM Abfrage positiv 
53.
REM --------------------------------------- 
54.
 
55.
 
56.
:ACCEPTED 
57.
SET NEWLINE=^& echo. 
58.
ECHO Beginn des Labelns 
59.
 
60.
 
61.
REM --------------------------------------- 
62.
REM Konvertierung der PDFs 
63.
REM --------------------------------------- 
64.
 
65.
 
66.
 
67.
for /f "delims=?" %%i in ('dir /b /a "%ordner1%\*.pdf"') do echo %%i>>%temptxt% 
68.
Echo %temptxt% erstellt mit den in %ordner1% enthaltenen PDF Dateien 
69.
 
70.
 
71.
for /f %%i in (%temptxt%) do pdftk %ordner1%\%%i dump_data output %ordner1%\%%i.txt 
72.
Echo Für jede Datei in %temptxt% einen Datadump ausgeführt und in einer Datei gespeichert 
73.
 
74.
 
75.
REM --------------------------------------- 
76.
for /f %%x in (%temptxt%) do for /f "tokens=1* delims== " %%h in ('findstr /ib "NumberOfPages" %ordner1%\%%x.txt') do if %%i GTR 1 (pdftk %ordner1%\%%x cat 1 output %ordner1%\p1_%%x) else (if %%i == 1 copy %ordner1%\%%x %ordner1%\p1_%%x) 
77.
Echo Datadump-Dateien durchsucht nach "NumberOfPages". Wenn die PDF mehr als eine Seite hat wird die Datei gesplitted, sonst nur kopiert wegen dem gleichen Namen 
78.
REM --------------------------------------- 
79.
 
80.
 
81.
REM --------------------------------------- 
82.
for /f %%i in (%temptxt%) do if exist %ordner2%\%%i (pdftk %ordner1%\p1_%%i background %ordner2%\%%i output %ordner3%\temp_stamped_document_%%i && echo %%i erfolgreich erstellt am %date% %time% %ordner1%\%%i : %ordner2%\%%i - Cachedateien erfolgreich gelöscht.>>%success%) else (echo %%i error am %date% %time% %ordner1%\%%i : %ordner2%\%%i - Cachedateien behalten.>>%success%) 
83.
Echo Wenn die Datei aus %ordner1% in %ordner2% existiert sollen diese Dateien mit pdftk in eine temporäre Datei zusammengeführt werden und ein Eintrag in der Datei %susccess% erstellt werden. 
84.
REM --------------------------------------- 
85.
 
86.
 
87.
REM --------------------------------------- 
88.
for /f %%x in (%temptxt%) do for /f "tokens=1* delims== " %%h in ('findstr /ib "NumberOfPages" %ordner1%\%%x.txt') do if %%i GTR 1 (pdftk A=%ordner3%\temp_stamped_document_%%x B=%ordner1%\%%x cat A1 B2-end output %ordner3%\stamped_document_%%x && del %ordner3%\temp_stamped_document_%%x) else (ren %ordner3%\temp_stamped_document_%%x stamped_document_%%x) 
89.
Echo Hier wird erneut die Anzahl der Seiten geprüft. Wenn diese größer als 1 ist wird mit pdftk die temporäre Datei, die aus der Datei aus %ordner1% und der Datei aus %ordner2% besteht, mit dem Rest, also ab Seite 2 der Datei aus %ordner1% zusammen geführt. Wenn die Seitenzahl 1 ist wird die temporäre Datei lediglich umbenannt. 
90.
REM --------------------------------------- 
91.
 
92.
Echo. 
93.
 
94.
 
95.
REM --------------------------------------- 
96.
REM Abfrage positiv - Endnachricht 
97.
REM --------------------------------------- 
98.
 
99.
ECHO Erfolgreich ausgefuehrt! Ihre Lieferscheine sind nun mit dem DPD Label versehen. Sie koennen das Programm nun schliessen. 
100.
 
101.
 
102.
for /f "delims=?" %%i in ('dir /b /a "%ordner1%\*.pdf"') do echo %%i>>%tempordner1% 
103.
for /f "delims=?" %%i in ('dir /b /a "%ordner2%\*.pdf"') do echo %%i>>%tempordner2% 
104.
 
105.
REM for /f %%a in (%tempordner1%) do for /f %%i in (%tempordner2%) do if %%a==%%i del %ordner1%\%%a && del %ordner2%\%%i && del %ordner1%\p1_%%a && echo Die Dateien %ordner1%\%%a und %ordner2%\%%i wurden am %date% um %time% gelöscht>>%success% 
106.
for /f %%a in (%tempordner1%) do for /f %%i in (%tempordner2%) do if %%a==%%i (del %ordner1%\%%a && del %ordner2%\%%i)  
107.
 
108.
 
109.
110.
 
111.
GOTO END 
112.
 
113.
:END 
114.
for /f "delims=?" %%i in ('dir /b /a "%ordner3%\*.pdf"') do echo %%i>>%printtxt% 
115.
for /f %%i in (%printtxt%) do start /B "Print" "C:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRd32.exe" /t %ordner3%\%%i %printer% && ping -n 30 127.0.0.1 && Taskkill /IM AcroRd32.exe 
116.
 
117.
del %ordner1%\p1_*.pdf 
118.
del %ordner1%\*.txt 
119.
del %temptxt% 
120.
del %printtxt%  
121.
del %tempordner1% 
122.
del %tempordner2% 
123.
md print_done\%date% 
124.
move %ordner3%\*.* print_done\%date% 
125.
ECHO.
Und hier ein weiteres Thema zu dem Script:

https://www.administrator.de/content/detail.php?nid=431100&id=238289 ...




Über Hilfe wäre ich sehr Dankbar

Grüße

Maurice aus Celle
Mitglied: Xaero1982
19.05.2014, aktualisiert um 13:55 Uhr
HI,

was mir noch nicht ganz klar ist.
Wo landen denn die Labels? Ich dachte die landen direkt als PDF in dem Labelordner?
Werden die direkt gedruckt von diesem Programm?

Das würde aber bedeuten man muss den Druck abfangen? Bzw. der Druckauftrag wird doch sicher unter der Lieferscheinnummer laufen oder? Dann wäre es doch das einfachste diese mit dem PDF Creator abzufangen und automatisch in dem Ordner Label speichern zu lassen und dann wie gehabt mit dem Script...

Bekommst du raus wie die Druckaufträge heißen?

Gruß
PS: In "Unserem" Skript kannst du die Echo's unter den Forschleifen auch mal mit REM oder :: auskommentieren. Sind nur für dich zur Erklärung gedacht gewesen
Bitte warten ..
Mitglied: rubberman
19.05.2014 um 14:00 Uhr
Hallo jehlenco,

wenn die Dateien bereits die Lieferscheinnummer im Namen haben, warum dann mühsam versuchen dieselbe aus PDF oder Bilddateien zu extrahieren?

Grüße
rubberman
Bitte warten ..
Mitglied: jehlenco
19.05.2014 um 14:13 Uhr
Also wir verwenden folgendes Programm: http://www.abcsoft.de/produkt1.htm

Dieses druckt die Lieferscheine direkt und speichert sie nicht. Es ist jedoch möglich die die Ausgabe auf PDF zu stellen, beispielsweise automatisiert mit http://de.pdfforge.org/ ... Aber dann heißt die Datei leider immernoch nicht wie die Lieferscheinnummer... daher dachte ich daran das Label als JPG auszugeben und via OCR Software (gocr) zu benennen. Wenn man die Datei speichern möchte im DPD Programm dann fragt er bei jeder Datei wie man sie nennen möchte.

Danke im Vorraus
Bitte warten ..
Mitglied: Xaero1982
19.05.2014 um 17:31 Uhr
Sorry, aber hier bin ich raus. Mit dieser "ocr" komm ich nicht klar. Wüsste auch nicht, wie ich da angeben soll, dass nur ein bestimmter Bereich gescannt werden soll. Bei mir scheitert es aber schon an der Eingangsdatei.

Das DPD Tool kann ich nicht testen.

Vielleicht hat ja noch jemand eine Idee.

Gruß
Bitte warten ..
Mitglied: Xaero1982
19.05.2014 um 17:48 Uhr
Gut, http://txpress.blogspot.de/2008/10/extract-text-from-scanned-images-of. ...

Anhand dieser Beschreibung hab ich mal den Lieferschein vom letzten mal umgewandelt und es ist wie ich es mir dachte unbrauchbar:

01.
__cn   E__o___  0__    8_____________o__q___0oo_ln_?        r 
02.
 
03.
 
04.
 
05.
ctul____J           ,   _      r? 
06.
_),cmn_,;_,nJ;_,,_J_!,?'__""-''__"''"   __  ^;0_o;_'0___,o_   _,s 
07.
 
08.
O  lI_6J'_I_Y___r_!     .0  C_  __    'l_' 
09.
_  TL_4r__J_!1__3X_     __0 ___,,9o0,oD_n,L,__ 
10.
0             ___a_0_,__ 0 _? o' ,_ 
11.
______l_u___n__        ____L_   o_   _0o__ 
12.
_',__ J__'m__;^m         '_ v,s_9____ ___  _0o_'_                 ? 
13.
 
14.
tt_i__a______r_       o  __LJ0o _r __0  ' _                 Nh 
15.
_ !J!_'-'-'^__mn-"i!'1w"'^"  _ _ _0'?_L_,  _    __           _ 
16.
t Toti107l_0tC)2l-98_-O     0_',,__ _^  ^ ?c,__          t        h 
17.
_            ß  B   _   ,_  '_o         <-         r 
18.
7            i  _-    ,0i,0D_,^ 
19.
_             __00_^q0_.   00___       h_        _ 
20.
C              ! ^     --_       NiJ 
21.
m            _                 _._       g 
22.
_            ,  __           _r;        fU 
23.
u          _ j_ _ _._ó              % _         0 
24.
_r ___               ' _        0 
25.
l           __-j  9_         q  _  o,        g 
26.
_          __                    _        6 
27.
28.
_  _   _    -c                  h;        _ 
29.
______             0    r;,        hg 
30.
tm_      _  _j             0      _ 
31.
_  __                    _! 
32.
_  Y_  M                     o. 
33.
_   _  __  _                     '         _ 
34.
_  _  U_  _ 
35.
_  y  M_  _f             0              _ 
36.
_   cæ_t  __    _         _              _g 
37.
_•  _  C_  _t    n                        g 
38.
M  _u'___  __t  _  N       a 
39.
r_  ___  Y_  o  _       _ 
40.
=_,d_-_  0h  c 
41.
O_ ____9,z    c_  _  _       _ 
42.
___     0r  _>_0 
43.
_   C_    _____n 
44.
_.;_  t__  -y_-,_ë!;_       b  0__ 
45.
_,tmj_2  to,___i!ô       0  ____
Ich denke das kannst du so vergessen ... schreibe den Hersteller der Software an und frage, ob man den Druck benennen kann mit dem Namen des Liferscheins.

Gruß
Bitte warten ..
Mitglied: rubberman
20.05.2014 um 11:32 Uhr
Hallo jehlenco.

Gibt es denn keine andere Möglichkeit den Lieferschein mit dem Ausdruck zu verheiraten?
In welcher Reihenfolge werden die Lieferscheine verarbeitet (Name, Datum etc.)? Anhand des Timestamps der Dateien sollte doch dann eine Zuordnung erfolgen können. Vielleicht kann man das Labelprogramm auch einzeln mit den Lieferscheinen füttern. Dann ist auch klar welches Label als Output kommt.

Grüße
rubberman
Bitte warten ..
Mitglied: Xaero1982
26.05.2014 um 16:40 Uhr
Hast du hier inzwischen eine Lösung gefunden?

Gruß
Bitte warten ..
Mitglied: jehlenco
26.05.2014 um 16:46 Uhr
Leider nicht... das Projekt liegt derzeit auf "Eis", leider...

Es muss doch eine Lösung geben das irgendwie in der Art zu speichern?!
Bitte warten ..
Mitglied: Xaero1982
26.05.2014 um 18:06 Uhr
Also das mit dem Auslesen aus dem Druck kannst du vergessen.

Wie gesagt: Das beste wäre es wenn du den Hersteller anschreibst und fragst, ob es eine Möglichkeit gibt diesen Druck als PDF zu speichern bzw. der Dateiname vorgegeben wird in Form der Lieferscheinnummer.

Ich kann das Programm wie gesagt leider nicht testen, da mir zum Betrieb die entsprechenden Dateien fehlen.

Gruß
Bitte warten ..
Ähnliche Inhalte
Utilities

Mehrere jpg oder pdf zu einer pdf zusammenfassen

Frage von goodbytesUtilities3 Kommentare

Hallo, ich suche ein Kommandozeilentool, womit ich mehrere jpg's mittels Batch nacheinander zu einer pdf-Datei zusammenfassen kann. Mit einer ...

Windows Tools

Zahl aus PDF auslesen und automatisch speichern

Frage von jehlencoWindows Tools3 Kommentare

Guten Morgen liebe Community, ich habe eine kurze Frage, kennt jmd vllt. eine Möglichkeit PDF's automatisch zu erstellen und ...

Batch & Shell

Dateiname per Batch auslesen und um eine Stelle verkleinern

gelöst Frage von kaiuwe28Batch & Shell2 Kommentare

Hallo zusammen, ich hatte gerade schon eine Frage zwecks Dateien kopieren im Forum gestellt und zum Glück auf mal ...

Windows Server

FileServer automatische PDF-OCR-Umwandlung

gelöst Frage von derkleineralfWindows Server3 Kommentare

Hallo zusammen, Folgendes Projekt steht bei uns an: abgelegte und zukünftig abzulegende pdf-Dateien sollen automatisch in maschinenlesbares Format (Pdf/A) ...

Neue Wissensbeiträge
Windows 10

USB Maus und Tastatur versagen Dienst unter Windows 10

Erfahrungsbericht von hardykopff vor 1 StundeWindows 10

Da steht man ziemlich dumm da, wenn der PC sich wegen fehlender USB Tastatur und Maus nicht bedienen lässt. ...

Administrator.de Feedback
Update der Seite: Alles zentriert
Information von Frank vor 4 StundenAdministrator.de Feedback8 Kommentare

Hallo User, die größte Änderung von Release 5.8 ist das Zentrieren der Webseite (auf großen Bildschirmen) und ein "Welcome"-Teaser ...

Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 21 StundenHumor (lol)4 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 1 TagGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Heiß diskutierte Inhalte
Server-Hardware
Welche Rolle spielt Design bei Enterprise IT Hardware?
Frage von ApolloXServer-Hardware17 Kommentare

Ich arbeite für einen internationalen Elektronikhersteller in der Forschung und meine Aufgabe ist es, Feedback von Nutzern in Hinsicht ...

Windows Netzwerk
WSUS4 und Windows 10 Updates automatisch installieren
Frage von sammy65Windows Netzwerk15 Kommentare

Hallo miteinander, ich habe mit einen neuen WSUS Server aufgesetzt Server 2016 darauf einen aktuellen WSUS. Grund, wir stellen ...

Switche und Hubs
Cisco SG350X-48 AdminIP in anderes VLAN
Frage von lcer00Switche und Hubs14 Kommentare

Hallo zusammen, ich habe ein Problem mir einem Cisco SG350X-48 bei der Erstinstallation wurde eine IP 192.168.0.254 (Default VLAN ...

Speicherkarten
Vergessliche USB-Sticks?
Frage von hanheikSpeicherkarten14 Kommentare

Ich habe in den letzten Tagen 500 USB-Sticks mit Bilddateien bespielt. Obwohl ich die Dateien mit größter Sorgfalt kopiert ...