Kezdőoldal » Számítástechnika » Programok » Van erre valami program/megoldás?

Van erre valami program/megoldás?

Figyelt kérdé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?


2020. jan. 5. 22:24
 1/8 anonim ***** válasza:
52%

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.

2020. jan. 6. 00:06
Hasznos számodra ez a válasz?
 2/8 A kérdező kommentje:
de itt nem a címének kell tartalmaznia,hanem a tartalmának. Maga az acrobat reader egyénként képest bennük keresni, viszont csak 1 db szóra, ebből eredően tehát a mennyiséget se tudom szabályozni hogy minimum mennyi egyezzen
2020. jan. 6. 00:10
 3/8 anonim ***** válasza:
100%

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).

2020. jan. 6. 02:08
Hasznos számodra ez a válasz?
 4/8 A kérdező kommentje:
A pdf-ek szövegesek,különben az acrobat reader-se találna semmit. Jelebleg egy UltraFinder nevű programmal sikerült benne keresnem reguláris kifejezésekkel is és ez meg is tlaálja őket (nem úgy mint egy másik epsdig az is képes volt az ilyesfajta keresésre), viszont ezzel se tudok mennyiségre szabályozni.
2020. jan. 6. 08:06
 5/8 anonim ***** válasza:
100%

Gyorsan összedobtam egy-egy szkriptet Bash-ban:

[link]

és Pythonban:

[link]

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.

2020. jan. 7. 00:15
Hasznos számodra ez a válasz?
 6/8 A kérdező kommentje:
Nagyon köszönöm #5-ös. Annyit még elárulnál, miként tudom "lefordítani"/futtatni a programot? A python-t egyáltlaán nem ismerem. (Magát a compilert már feltelepítettem)
2020. jan. 8. 07:38
 7/8 anonim ***** válasza:
100%

#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.

2020. jan. 8. 10:43
Hasznos számodra ez a válasz?
 8/8 A kérdező kommentje:
Köszönöm szépen a válaszod és a programokat. A pythonost próbáltam az működik, csak néha kidob hibákat (de függetlenül ettől megjeleníti a találatokat, szóval nincs vele gond)
2020. jan. 18. 21:32

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!