Portál AbcLinuxu, 30. dubna 2025 21:55
Převedl jsem jeden PDF soubor do prostého textu pomocí pdftotext
. Problém je, že výsledný soubor obsahuje velké (hodně velké) množství „překlepů“ — tedy spíš ne pravopisné chyby, ale chyby typu: onemocnla (onemocněla), pláem (pláčem), nkdy (někdy)... Jde tedy nejčastěji o chybějící písmenka s diakritikou.
No a já uvažuju, jak se co nepohodlněji dostat k dokumentu, který oproti původnímu obsahuje minimum chyb a aby to bylo pokud možno automatické, aby to šlo jenom s minimální námahou.
Jako první možnost mě napadl aspell
, jenže u něj jsem nenašel parametry, jak opravu zautomatizovat (v mém případě nutnost). Musel bych tedy mockrát mačkat klávesy, což nechci.
A u aspellu
jsem skončil, protože jsem nenašel (špatně jsem hledal?) jiný nástroj, který by dovedl to, co aspell nedovede (tedy zautomatizovat opravu „překlepů“).
Budu moc rád, pokud mě aspoň navedete, jak tento problém vyřešit. Předem díky.
Tiskni
Sdílej:
Cožpak se nedá mačkání kláves zautomatizovat, vyberu-li to nejhloupější řešení?
Jinak mám dojem, že je aspell knihovna, takže bys si snad mohl třeba v nějakém Pythonu nebo kdovíčem napsat skript.
Nepředpokládám, že by naprogramování něčeho takového stálo moc úsilí i relativní neprogramátory.
Jinak mám dojem, že je aspell knihovna, takže bys si snad mohl třeba v nějakém Pythonu nebo kdovíčem napsat skript.
Nepředpokládám, že by naprogramování něčeho takového stálo moc úsilí i relativní neprogramátory.
Ano, toto je řešení. Díky. Stejně jsem se naučit aspoň základy Pythonu chystal. Určitě by šel použít i Perl, ale Python bude asi pro začátečníka jako jsem já vhodnější.
Nejsem si jistej, ale pokud by neco nahrazovalo v PDF cesky znaky bitmapama, tak by to musel byt taky docela slozitej algoritmusFakt ne, rozhodně ne složitější, než jak se to renderuje na obrazovku.
Nejsem si jistej, ale pokud by neco nahrazovalo v PDF cesky znaky bitmapama, tak by to musel byt taky docela slozitej algoritmusVzhledem k tomu, že PDF je prezentační formát, dělají to tak všichni, kterým záleží na přesném zobrazení toho, co si přejí. Spíš než na bitmapy se to převádí na křivky (na bitmapy jsou převedené spíš dokumenty zkonvertované z PS s bitmapovými fonty), ale z hlediska kopírování to vyjde nastejno. Často je to tak, že PDF v sobě má něco jako "font", ale v kódování, které je ad hoc vytvořeno pro daný dokument. Vizte např. tento dokument a zkuste si s ním pohrát.
Spis tam bude opravdu problem s kodovanim. Zatimco pdftotext pouziva kodovani "A", PDF je kodovani pomoci "B". Zkusil by se zamerit na tohle a hledat na google.
Problém je ten, že u pdftotext
lze nastavit pouze výstupní kódávní pomocí -enc
, ale vstupní nějak detekuje sám.
Původní PDF je v pořádku. Jakou cestou bych teda měl jít?
Takto jsem převedl PDF soubor do plain textu:
pdftotext -enc UTF-8 soubor.pdf soubor.txt
Místo znaků s diakritikou jsem dostal divnou sekvenci. Teď zbývá nahradit ty divné znaky správnými znaky s diakritikou. Vypadá to dobře. Díky. Nahrazuju to v geditu
.
Takže řešení je prosté: Nejdřív převést pomocí pdftotext
soubor do plain textu: pdftotext -enc UTF-8 soubor.pdf soubor.txt
Potom pomocí nějakého nástroje (já použil gedit
, ale můžete určitě použít sed
apod.) nahradíte "klikyháky" za české znaky s diakritikou.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.