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 dokumente per script durchsuchen und umbenennen

Frage Entwicklung Batch & Shell

Mitglied: minicoop

minicoop (Level 1) - Jetzt verbinden

04.08.2009, aktualisiert 16:48 Uhr, 7394 Aufrufe, 10 Kommentare, 1 Danke

Hallo,

ich habe da einen gedankengang und möchte von euch wissen, ob ich diesen so durchziehen kann:

ich habe in einem verzeichnis diverse pdf dokumente.
die pdfs haben unterschiedliche namen, wahlweise fangen diese mit img an, manchmal einfach eine nummer, je nachdem von welchem scanner sie eingescannt worden sind.
gewünscht ist eigentlich dass die pdf's eindeutig sind, und zwar mit der nummer welche im pdf als barcode hinterlegt sind.
es handelt sich hierbei um einen kleinen barcode,
welche auch mit klarschrift nochmal angedruckt ist.
diese fängt immer mit "09-0" an.

nun habe ich mir überlegt,
ich wandel das pdf um in txt, suche die zeile mit 09-0,
merke mir die nächsten zwanzig stellen und benenne anschliessend das ursprungspdf um.

so würde ich mal anfangen:

rem StartPfad ohne abschließenden \ angeben!
set "Quellverzeichnis=c:\xpdf\in"
set "Quelldatei=*.pdf"
set "Dateimaske=*.txt"
set "Pufferverzeichnis=c:\xpdf\work"
set "Zielverzeichnis=c:\xpdf\out"

set "SuchString=09-0"

for %%i in (%Quellverzeichnis%\%Quelldatei%) do "c:\windows\xpdf\pdftotext.exe -layout %%i %Pufferverzeichnis%"

somit würden meine pdfs in txt dateien umgewandelt werden.

nun müsste ich doch mit dem findstr weiterarbeiten können, oder ?

wie kann ich dem sagen dass er mir, wenn er "09-0" gefunden hat, die nächsten zwanzig stellen merken soll bzw die ursprungspdf umbennen soll?

Gruss
Nedim
Mitglied: 60730
04.08.2009 um 17:19 Uhr
Servus,

ich habe da einen gedankengang und möchte von euch wissen, ob ich diesen so durchziehen kann:

"Theoretisch" ja

die pdfs haben unterschiedliche namen, wahlweise fangen diese mit img an, manchmal einfach eine nummer, je nachdem von welchem scanner sie eingescannt worden sind.

Womit wir (edit du) /edit praktisch erstmal rausfinden müssten, ob denn tatsächlich aus dem Bild, das im pdf steckt auch tatsächlich ein lesbarer Text wird.

Ansonsten (echter Text im PDF) ist das kein allzugroßes Ding.
Gruß
Bitte warten ..
Mitglied: miniversum
04.08.2009 um 18:57 Uhr
Wie sieht den die betreffende Zeile der Textdatei aus?
Du kannst auch mal versuchen folgendes in der cmd einzugeben (als test)
findstr "09-0" irgendeine.pdf
Kann gut sein das es direkt mit der pdf geht und du die garncith umwandeln brauchst.
Wenn das schema dieser Ausgabe bekannt ist kann man weiter arbeiten. Solange tappen alle im dunkeln.
Bitte warten ..
Mitglied: 60730
04.08.2009 um 21:24 Uhr
@miniversum,

nee das mit findstr "09-0" irgendeine.pdf wird garantiert nicht funktionieren.
(Ist wohl schopn etwas länger her, dass du die letzte gerenderte PDF mit Notepad aufgemacht hast)
01.
%PDF-1.3 
02.
%âãÏÓ 
03.
342 0 obj 
04.
<<  
05.
/Linearized 1  
06.
/O 344  
07.
/H [ 969 442 ]  
08.
/L 485923  
09.
/E 12520  
10.
/N 66  
11.
/T 478964  
12.
>>  
13.
endobj 
14.
                                                      xref 
15.
342 27  
16.
0000000016 00000 n 
17.
0000000891 00000 n 
18.
0000001411 00000 n 
19.
0000001646 00000 n 
20.
0000001796 00000 n 
21.
0000001906 00000 n 
22.
0000001947 00000 n 
23.
0000002052 00000 n 
24.
0000002075 00000 n 
25.
0000003464 00000 n 
26.
0000003486 00000 n 
27.
0000004532 00000 n 
28.
0000004554 00000 n 
29.
0000005552 00000 n 
30.
0000005574 00000 n 
31.
0000006652 00000 n 
32.
0000006674 00000 n 
33.
0000007674 00000 n 
34.
0000007696 00000 n 
35.
0000008739 00000 n 
36.
0000008761 00000 n 
37.
0000009789 00000 n 
38.
0000009812 00000 n 
39.
0000011191 00000 n 
40.
0000012272 00000 n 
41.
0000000969 00000 n 
42.
0000001389 00000 n 
43.
trailer 
44.
<< 
45.
/Size 369 
46.
/Info 341 0 R  
47.
/Root 343 0 R  
48.
/Prev 478953  
49.
/ID[<27f4468fd94b33c4e26451a625f15bce><27f4468fd94b33c4e26451a625f15bce>] 
50.
>> 
51.
startxref 
52.
53.
%%EOF 
54.
     
55.
343 0 obj 
56.
<<  
57.
/Type /Catalog  
58.
/Pages 334 0 R  
59.
/PageLabels 332 0 R  
60.
>>  
61.
endobj 
62.
367 0 obj 
63.
<< /S 294 /T 353 /L 470 /Filter /FlateDecode /Length 368 0 R >>  
64.
stream 
65.
H‰b```¢“¬<ö¼ bE80>¿ž%vÁ\z{çfß	I——K]¹Ðв]ðøk¥¬êI×—0°Û۽ݵÆ(2¹2bÞ©¶N]˺œÄdg–ékÎ?{ºykÛÙGÙ·»å6¼Ö¶ä]”×[~YQöÅcwóÀóþùéÌ3n¯zþmþúÀÙIñž§ÐÓ.¨÷€XŠÄ¸¥1è0,cÈÚÁÐÀÀø‚ÃAnCýÆïR³9ž€h;ÂÀÖ¹H;8Œ{8˜íÁÀîjÏ Ž¦þ)Ë?üø²¬×£9àÑe—6Ÿ—œKPà\Êfö§ÜãÑ¥N±`®V§…—g¾y%ê2ýô² Ý¢Ná.3½žlz2­]sé…§›:§¨©hôoíÍÀî~j‘@€ ãV¦8 
66.
endstream 
67.
endobj 
68.
368 0 obj 
69.
319  
70.
endobj 
71.
344 0 obj 
72.
<<  
73.
/Type /Page  
74.
/Parent 333 0 R  
75.
/Resources 345 0 R  
76.
/Contents [ 350 0 R 352 0 R 354 0 R 356 0 R 358 0 R 360 0 R 362 0 R 364 0 R ]  
77.
/Rotate 90  
78.
/Thumb 196 0 R  
79.
/MediaBox [ 0 0 595 842 ]  
80.
/CropBox [ 0 0 595 842 ]  
81.
>>  
82.
endobj 
83.
345 0 obj 
84.
<<  
85.
/ProcSet [ /PDF /Text ]  
86.
/Font << /F2 348 0 R /F4 346 0 R >>  
87.
/ExtGState << /GS1 366 0 R >>  
88.
/ColorSpace << /Cs6 347 0 R >>  
89.
>>  
90.
endobj 
91.
346 0 obj 
92.
<<  
93.
/Type /Font  
94.
/Subtype /Type1  
95.
/Encoding /WinAnsiEncoding  
96.
/BaseFont /Helvetica-Bold  
97.
>>  
98.
endobj 
99.
347 0 obj 
100.
[  
101.
/ICCBased 365 0 R  
102.
103.
endobj 
104.
348 0 obj 
105.
<<  
106.
/Type /Font  
107.
/Subtype /Type1  
108.
/Encoding /WinAnsiEncoding  
109.
/BaseFont /Helvetica  
110.
>>  
111.
endobj 
112.
349 0 obj 
113.
1309  
114.
endobj 
115.
350 0 obj 
116.
<< /Filter /FlateDecode /Length 349 0 R >>  
117.
stream
Und das da oben ist ein (Teilstück von einer) gerenderten, kein eingebundenes Bild...
Wenn gescannt - dann nur via OCR Umweg..

Gruß
Bitte warten ..
Mitglied: minicoop
05.08.2009 um 10:38 Uhr
moin moin,

also mit findstr geht beim pdf mal garnichts.. .hab ich eben doch noch mal ausprobiert.

erst wenn ich die dokumente mit einer hohen auflösung einscanne,
kann ich die in txt umwandlen und in Suchstring ist dort dann auch aufzufinden.
findstr "09-0" 04082009.txt findet dann auch
09-05411-7-29007254

also muss ich jetzt nur noch diesen string mir merken und die ursprungspdf umbenennen,
leider springt hier bei mir gerade kein funken.......
Bitte warten ..
Mitglied: 60730
05.08.2009 um 12:07 Uhr
Zitat von minicoop:
moin moin,

also mit findstr geht beim pdf mal garnichts.. .hab ich eben doch
noch mal ausprobiert.

yupp - aber das war ja klar

erst wenn ich die dokumente mit einer hohen auflösung einscanne,
kann ich die in txt umwandlen und in Suchstring ist dort dann auch
wie oft genau und an welcher Stelle?
aufzufinden.
findstr "09-0" 04082009.txt findet dann auch
09-05411-7-29007254

also muss ich jetzt nur noch diesen string mir merken und die
ursprungspdf umbenennen,

Moooment mal - vorhin hiess es noch
wie kann ich dem sagen dass er mir, wenn er "09-0" gefunden hat, die nächsten zwanzig stellen merken soll bzw die ursprungspdf umbennen soll?

leider springt hier bei mir gerade kein funken.......

"funk" mal sowohl eine (nur bis zum 09 Ansatz) eine umgestrickte PDF und das, was gewünscht ist.

Gruß
Bitte warten ..
Mitglied: minicoop
05.08.2009 um 12:27 Uhr
der string ist nur einmal auf der ersten seite drin, direkt unter dem barcode.
---
die nächsten zwanzig stellen waren doch ein wenig zu viel... der gesamte string ist nur 19 stellig.
die zw###g waren "geschätzt"

wenn ich im dos fenster ein findstr durchführe, zeigt er mir den kompletten string
an; ich wusste nur nicht ob ich mit dem ergebnis auch arbeiten kann oder nicht.
manchmal kam es auch vor dass mir die nächste zeile auch angezeigt wurde.

ich habe aber vorhin folgendes festgestellt:
wenn der String
09-05411-7-29007254 lautet, wird er beim umwandeln von pdf in txt anscheinend
manchmal in 09-05411-7-2900725 4
also mit lücke umgewandelt.
tja, das ist nicht gut...
die ganzen umwandlungen gestern waren ohne probleme, und heute sind auf einmal lücken drin..

also muss ich jetzt doch hingehen und ein barcode erkennungsprogramm suchen...
und das über kommandozeile...

es kennt nicht zufällig jemand so eines ?

merde....
Bitte warten ..
Mitglied: 60730
05.08.2009 um 12:46 Uhr
Zitat von minicoop:
der string ist nur einmal auf der ersten seite drin, direkt unter dem
barcode.

perfekt

ich habe aber vorhin folgendes festgestellt:
wenn der String
09-05411-7-29007254 lautet, wird er beim umwandeln von pdf in txt
anscheinend
manchmal in 09-05411-7-2900725 4
also mit lücke umgewandelt.
tja, das ist nicht gut...
warum? - wenn kein Leerzeichen dahinter ist - steht dann was anderes - eigentlich nicht ?

01.
rem StartPfad ohne abschließenden \ angeben! 
02.
set "Quellverzeichnis=C:\script\pdf2txt" 
03.
set "Quelldatei=*.pdf" 
04.
set "Pufferverzeichnis=C:\script\pdf2txt\buffer" 
05.
 
06.
set "SuchString=-09" 
07.
 
08.
for %%i in (%Quellverzeichnis%\%Quelldatei%) do (C:\script\pdf2txt\pdftotext.exe -layout %%i  
09.
findstr  "%SuchString%" "%Quellverzeichnis%\%%~ni.txt">%Pufferverzeichnis%\info.log 
10.
11.
 
12.
for /f "Tokens=1,2" %%a in (%Pufferverzeichnis%\info.log) do ren "%Quellverzeichnis%\*.pdf" %%a%%b.pdf
So läuft das - aber da ich vorher "blind" deine ganzen Parameter übernommen habe - die pdftotext.exe gar nicht kennt - mußte das Script in die Hose gehen....
Gruß
Bitte warten ..
Mitglied: miniversum
05.08.2009 um 12:49 Uhr
Zitat von 60730:
@miniversum,

nee das mit findstr "09-0" irgendeine.pdf wird garantiert nicht funktionieren.
(Ist wohl schopn etwas länger her, dass du die letzte gerenderte PDF mit Notepad aufgemacht hast)

So pauschal würd ich das jetzt nicht sagen das es GARANTIERT nicht geht. Ich schrieb ja das es je nach dem geht, je nach dem wie si eerzeugt wurde, bzw. womit.
Ichhabe hier z.B. einige Test-Protokolle die automatisch von einer Softwar im pdf-Format erzeugt werden. Diese kann man per findstr durchsuchen. Das sieht dann in der cmd so aus:
01.
P:\>findstr "PASS" Bericht.pdf 
02.
( PASS ) Tj
Bitte warten ..
Mitglied: minicoop
13.08.2009 um 14:22 Uhr
Hallo,

bin leider erst heute dazu gekommen...
das passt soweit mit den pfaden..
allerdings scheint beim findstr noch ein fehler zu sein..
Es kommt eine Meldung:
Die folgende Verwendung des Pfadoperators zur Ersetzung eines Batchparameters ist ungültig: %~nI.txt" >%Pufferverzeichnis%\info.log

sehe aber nicht wo der fehler ist..
Bitte warten ..
Mitglied: 60730
13.08.2009 um 18:25 Uhr
Servus,

Zitat von minicoop:
Hallo,

bin leider erst heute dazu gekommen...
das passt soweit mit den pfaden..

Sorry - aber ich hab mir das jetzt auch mal durchgekaut und nein - passt nicht....

sehe aber nicht wo der fehler ist..

Den einen sehe ich auch nicht - aber die vielen anderen schon

nimm die editierte Version und passe Sie an deine Bedürfnisse an.

Gruß
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
Pdf Files umbenennen (7)

Frage von Sacred zum Thema Batch & Shell ...

Batch & Shell
gelöst 1 PDF duplizieren und umbenennen nach CSV mittels Batch (5)

Frage von Kalisser zum Thema Batch & Shell ...

Batch & Shell
gelöst PowerShell Script Move-Item nach x Tagen (5)

Frage von lupolo zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...