Fórum Root.cz

Hlavní témata => Software => Téma založeno: Luboš 15. 05. 2011, 22:35:01

Název: Převod DOC do HTML
Přispěvatel: Luboš 15. 05. 2011, 22:35:01
Ahoj, mám tu hromadu dokumentu v DOC a rád bych si je převedl do HTML (pro čtení v Kindle). Mám tu těch souborů víc, takže bych uvítal nějakou hromadnou konverzi. Umí třeba OpenOffice.org takové věci z řádky? Nebo existuje jiné řešení? Díky
Název: Re: Převod DOC do HTML
Přispěvatel: Kit 15. 05. 2011, 23:01:11
Zkus wvHtml.
Název: Re: Převod DOC do HTML
Přispěvatel: Pavel 'TIGER' Růžička 15. 05. 2011, 23:03:04
Já jsem našel toto: http://freshmeat.net/projects/unoconv/
Název: Re: Převod DOC do HTML
Přispěvatel: Luboš 15. 05. 2011, 23:09:22
Super! Balík wv byl výborný tip. Ještě mám ale jeden problém: to html, co z toho leze, je dost složitě otagované. Ještě bych potřeboval nějaký html čistič, který by odstranil různé vlastnosti z různých tagů. Příklad: aby z <p class="něco a něco"> a <div style="něco dalšího"> udělal jen <p> a <div>.
Název: Re: Převod DOC do HTML
Přispěvatel: Pavel 'TIGER' Růžička 15. 05. 2011, 23:14:21
To nebude asi tak lehké, protože to vypadá, že k nejlepší konverzi využívá styly, bez nich se to asi rozhodí ... nevím, neviděl jsem a ani jsem nezkoušel, je to jen má domněka.
Název: Re: Převod DOC do HTML
Přispěvatel: Luboš 15. 05. 2011, 23:22:13
Nejde mi o zachování designu, naopak chci co nejčistší HTML. Stačilo by mi "odstraň všechny div i s jejich parametry" nebo "nahraď všechny p s parametry obyčejným p". Měl by to zvládnout sed, ale já nevím, jak na to.
Název: Re: Převod DOC do HTML
Přispěvatel: Kit 15. 05. 2011, 23:29:29
HTML si čistím pomocí http://php.net/manual/en/class.domdocument.php (http://php.net/manual/en/class.domdocument.php)
Název: Re: Převod DOC do HTML
Přispěvatel: Pavel 'TIGER' Růžička 15. 05. 2011, 23:30:15
.... a sed je dobře popsanej na wikině: http://cs.wikipedia.org/wiki/Sed
Název: Re: Převod DOC do HTML
Přispěvatel: Luboš 15. 05. 2011, 23:34:16
Zkoušel jsem odstranit divy, ale nejde mi to. Poradíte?

sed 's/\<*div*\>//g vstup.html vystup.html
Název: Re: Převod DOC do HTML
Přispěvatel: Pavel 'TIGER' Růžička 15. 05. 2011, 23:59:58
Nevím, jestli sed umí hvězdičky .... vždycky jsem ho používal k nahrazení přesného výrazu .... zpětná lomítka se mi také nezdají.
Název: Re: Převod DOC do HTML
Přispěvatel: Pavel 'TIGER' Růžička 16. 05. 2011, 00:06:06
Zkuste si příklad jedno HTMLko otevřít a nahradit třeba sed -i 's/<div/<divizna/g' index.html a mělo by to přepsat v již otevřeném HTML souboru, bez vytváření nového.
Název: Re: Převod DOC do HTML
Přispěvatel: Luboš 16. 05. 2011, 00:13:41
Díky za snahu. Mě by stačilo umět smazat něco v řádku "od do". Zkouším jiné věci, ale nejde to. Stačilo by smazat atribut "style", takže něco takového:

sed 's/style=\"*\"//g' vstup.html  vystup.html

Čili: nahraď vše od style=" do ". Mělo by to fungovat, ale nefunguje. Smaže to jen style=" ale zbytek nechá. Asi na tom sedu něco nechápu. Vysvětlíte mi to někdo chytřejší?
Název: Re: Převod DOC do HTML
Přispěvatel: Pavel 'TIGER' Růžička 16. 05. 2011, 00:58:45
Tak jsem to zkoušel a zabralo mi toto: sed -i 's/style="*"/TEST007/g' index.php (je to příklad!)
Název: Re: Převod DOC do HTML
Přispěvatel: Kit 16. 05. 2011, 07:46:32
Tak jsem to zkoušel a zabralo mi toto: sed -i 's/style="*"/TEST007/g' index.php (je to příklad!)
To nemůže fungovat, protože je to špatně. Když už, tak
Kód: [Vybrat]
sed -i 's/style=".*"/TEST007/g' index.phpale i to je špatně. Stačí, aby v prohledávaném řetězci (řádku) byly dva páry uvozovek a spolkne to vše uvnitř.
Název: Re: Převod DOC do HTML
Přispěvatel: Pavel 'TIGER' Růžička 16. 05. 2011, 09:53:40
Já nepsal, že je to správně, ale tato syntaxe mi odstranila v celém dokumentu veškerý style s obsahem mezi uvozovkama a nahradila jej slovem TEST007. Více jsem to netestoval. Je jasné, že pro přesnou náhradu to bude chtít upravit, já osobně bych použil soubor náhrad, přeci jen se asi nebude nahrazovat jen ten style.
Název: Re: Převod DOC do HTML
Přispěvatel: xKiv 16. 05. 2011, 13:41:56
Když už, tak
Kód: [Vybrat]
sed -i 's/style=".*"/TEST007/g' index.phpale i to je špatně. Stačí, aby v prohledávaném řetězci (řádku) byly dva páry uvozovek a spolkne to vše uvnitř.
Když už, tak
Kód: [Vybrat]
sed -i 's/style="[^"]*"/TEST007/g' index.php
@Luboš:
Kód: [Vybrat]
sed 's/style=\"*\"//g' vstup.html  vystup.htmlNajde style=. pak libovolný počet opakování uvozovek (hvězdička je opakování předchozího znaku (případně složitější uzávorkované konstrukce)), a pak jedny uvozovky. Cokoli jiného než uvozovky se tam nevleze.
Takže před ní chceme [^"], což je jakýkoli znak kromě uvozovek - pak to najde (a nahradí) všechno od style=" až do další ".