Van erre valami program/megoldás?
A lényeg az lenne, hogy rengeteg pdf-em van amit régen letöltttem "egy megadott témában", viszont elfelejtettem csoportosítani. Most viszont azt szeretném ha lenne valami mód rá, hogy átvizsgálni az összes állományt egy megadott mappán belül és amelyik pdf tartalmazz a megadott szövegek/kulcsszavak közzül legalább x darabot akkor annak a fájlnak a nevéhez etsz valami jelzőt vagy kiírja vagy hasonló. Megoldható ez vagy nem? (tényleg rengeteg pdf van és egyenként átválogatni örökké valóság lenne....kb 3 éven át mentegettem különbző témakörökben)
tehát pl van egy lista ami tartalmazza a szövegeket pl alma,körte,banán,szilva és a mappában tegyük fel van egy sample.pdf ez a pdf tartalmaz 4 kzzül 3 szót ezért ezt megjelöli, viszont van a sample.pdf mellett még egy sample2.pdf ami csak az alma, meg a banán-t tartalmazza, ezért ezt nem jelöli meg. Megoldható ez valahogy?
A PDF az nem szerkeszthető tehát ahoz hogy keress a szövegben át kell konvertálnod mindet.
Utána meg már egyesével world ben megnyitva tudsz keresni.
Ha a címben van adott szó amit keresel akkor írd be a windows ablak keresőjébe és szépen ott lesz az összes aminek a címe tartalmazza.
1. Milyen PDF-állományokról van szó?
Beszkennelt dokumentumok (tehát az oldalak képként vannak tárolva) vagy szövegszerkesztő programból/karakterfelismerő szoftverből kiexportált szöveges tartalmakról?
Előbbi esetben még karakterfelismerést kell végezni, utóbbi esetben már lehet keresni.
2. Ámbár a nagyobb, közismertebb PDF-olvasók - Adobe Acrobat Reader, Foxit Reader - képesek több szöveges PDF-ben való keresésre ( [link] ), de hogy ha egy - szöveges állományból származó - listából kiválasztott szavakból csak 2-tőt talál, akkor ne "jelölje", ha 2-nél többet, akkor meg igen az már komplexebb feladat (nem túl bonyolult, ha a PDF-fet átalakítod egyszerű szöveggé - erre ott a pdftotext [ [link] ] - onnantól fogva már karakterláncban történő keresés - reguláris kifejezés/awk és hasonló finomságok).
Gyorsan összedobtam egy-egy szkriptet Bash-ban:
és Pythonban:
a topiknyitó kérdésben meghatározott példa alapján
Mind a kettő hasonlóan működik: a második argumentumban megadott szövegállományt - ahol egy sor egy szót tartalmaz - megnyitjuk, szétbontjuk a sortörések mentén elemeire és a későbbiekben felhasználjuk a reguláris kifejezés megalkotására.
Az első argumentumban megadott útvonalon belül meg kilistázzuk a PDF-állományokat. A listán végigmegyünk és minden egyes PDF-állományt átalakítunk egyszerű szöveggé. Ehhez Bash-ban az előbb említett pdftotext alkalmazást, Pythonban meg a pdfminer2 modult használjuk.
Az egyszerű szövegben az előbb említett reguláris kifejezéssel kiszedjük a keresett szavakat, azokat kisbetűssé alakítjuk és elimináljuk a duplikációkat, majd megszámoljuk hány van belőlük. Ha 2-nél több, kiírjuk az éppen feldolgozott PDF-állomány nevét.
#6: Az első Linuxos (de feltételezem működésre bírható a Windows 10 WSL-jével is) Bash szkript.
Futtatásához a "szokványos" Linuxos eszközökön (ls, cat, tr, wc, sort, uniq illetve grep) kívül szükséged lesz a pdftotext nevű programra - az több pdf-eszközzel együtt telepíthető gyári tárolóból, csomagkezelőn keresztül (Ubuntu és társai alatt: sudo apt install poppler-utils).
A második egy Python-szkript.
Futtatásához szükséged lesz a Python parancsértelmezőre (a Pythonnál interpreter van, nem hagyományos értelemben vett compiler - nem fordtunk futtatható .exe-t) - ez már leírásod alapján elvileg megvan - illetve a pdfminer2 és chardet modulokra.
Ezeket legkönnyebben pip (ez egy python-modul telepítő)
[link] telepítheted:
pip install pdfminer2
pip install chardet
Maga a szkript egyszerűen futtatható:
python pdfsearch.py c:\asdasd\ words.txt
vagy:
python3 pdfsearch.py c:\asdasd\ words.txt
értelmszerűen a c:\asdasd\ és a words.txt helyére a megfelelő dolgok helyettesítendőek be.
Bár csak Linux alatt teszteltem, de futnia kellene Windows alatt is.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!