pdf dokumente per script durchsuchen und umbenennen
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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 122010
Url: https://administrator.de/forum/pdf-dokumente-per-script-durchsuchen-und-umbenennen-122010.html
Ausgedruckt am: 24.12.2024 um 14:12 Uhr
10 Kommentare
Neuester Kommentar
Servus,
"Theoretisch" ja
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ß
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ß
Wie sieht den die betreffende Zeile der Textdatei aus?
Du kannst auch mal versuchen folgendes in der cmd einzugeben (als test)
Wenn das schema dieser Ausgabe bekannt ist kann man weiter arbeiten. Solange tappen alle im dunkeln.
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.
@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)
Und das da oben ist ein (Teilstück von einer) gerenderten, kein eingebundenes Bild...
Wenn gescannt - dann nur via OCR Umweg..
Gruß
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)
%PDF-1.3
%âãÏÓ
342 0 obj
<<
/Linearized 1
/O 344
/H [ 969 442 ]
/L 485923
/E 12520
/N 66
/T 478964
>>
endobj
xref
342 27
0000000016 00000 n
0000000891 00000 n
0000001411 00000 n
0000001646 00000 n
0000001796 00000 n
0000001906 00000 n
0000001947 00000 n
0000002052 00000 n
0000002075 00000 n
0000003464 00000 n
0000003486 00000 n
0000004532 00000 n
0000004554 00000 n
0000005552 00000 n
0000005574 00000 n
0000006652 00000 n
0000006674 00000 n
0000007674 00000 n
0000007696 00000 n
0000008739 00000 n
0000008761 00000 n
0000009789 00000 n
0000009812 00000 n
0000011191 00000 n
0000012272 00000 n
0000000969 00000 n
0000001389 00000 n
trailer
<<
/Size 369
/Info 341 0 R
/Root 343 0 R
/Prev 478953
/ID[<27f4468fd94b33c4e26451a625f15bce><27f4468fd94b33c4e26451a625f15bce>]
>>
startxref
0
%%EOF
343 0 obj
<<
/Type /Catalog
/Pages 334 0 R
/PageLabels 332 0 R
>>
endobj
367 0 obj
<< /S 294 /T 353 /L 470 /Filter /FlateDecode /Length 368 0 R >>
stream
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
endstream
endobj
368 0 obj
319
endobj
344 0 obj
<<
/Type /Page
/Parent 333 0 R
/Resources 345 0 R
/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 ]
/Rotate 90
/Thumb 196 0 R
/MediaBox [ 0 0 595 842 ]
/CropBox [ 0 0 595 842 ]
>>
endobj
345 0 obj
<<
/ProcSet [ /PDF /Text ]
/Font << /F2 348 0 R /F4 346 0 R >>
/ExtGState << /GS1 366 0 R >>
/ColorSpace << /Cs6 347 0 R >>
>>
endobj
346 0 obj
<<
/Type /Font
/Subtype /Type1
/Encoding /WinAnsiEncoding
/BaseFont /Helvetica-Bold
>>
endobj
347 0 obj
[
/ICCBased 365 0 R
]
endobj
348 0 obj
<<
/Type /Font
/Subtype /Type1
/Encoding /WinAnsiEncoding
/BaseFont /Helvetica
>>
endobj
349 0 obj
1309
endobj
350 0 obj
<< /Filter /FlateDecode /Length 349 0 R >>
stream
Und das da oben ist ein (Teilstück von einer) gerenderten, kein eingebundenes Bild...
Wenn gescannt - dann nur via OCR Umweg..
Gruß
Zitat von @minicoop:
moin moin,
also mit findstr geht beim pdf mal garnichts.. .hab ich eben doch
noch mal ausprobiert.
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?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,
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ß
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 ?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...
rem StartPfad ohne abschließenden \ angeben!
set "Quellverzeichnis=C:\script\pdf2txt"
set "Quelldatei=*.pdf"
set "Pufferverzeichnis=C:\script\pdf2txt\buffer"
set "SuchString=-09"
for %%i in (%Quellverzeichnis%\%Quelldatei%) do (C:\script\pdf2txt\pdftotext.exe -layout %%i
findstr "%SuchString%" "%Quellverzeichnis%\%%~ni.txt">%Pufferverzeichnis%\info.log
)
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ß
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)
@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:
P:\>findstr "PASS" Bericht.pdf
( PASS ) Tj
Servus,
Sorry - aber ich hab mir das jetzt auch mal durchgekaut und nein - passt nicht....
Den einen sehe ich auch nicht - aber die vielen anderen schon
nimm die editierte Version und passe Sie an deine Bedürfnisse an.
Gruß
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ß