/Articles/HowTo/DOC2HTML/DOC/HTML/DOC2HTML.cs.html
0,0 → 1,422
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title> DOC 2 HTML </title>
<meta name="keywords" content="stavebnice MLAB převod Word DOC HTML">
<meta name="description" content="Projekt MLAB, Převod Word dokumentu na HTML">
<!-- AUTOINCLUDE START "Page/Head.cs.ihtml" DO NOT REMOVE -->
<link rel="StyleSheet" href="../../../../../Web/CSS/MLAB.css" type="text/css" title="MLAB základní styl">
<link rel="StyleSheet" href="../../../../../Web/CSS/MLAB_Print.css" type="text/css" media="print">
<link rel="shortcut icon" type="image/x-icon" href="../../../../../Web/PIC/MLAB.ico">
<script type="text/javascript" src="../../../../../Web/JS/MLAB_Menu.js"></script>
<!-- AUTOINCLUDE END -->
</head>
 
<body lang="cs">
 
<!-- AUTOINCLUDE START "Page/Header.cs.ihtml" DO NOT REMOVE -->
<!-- ============== HLAVICKA ============== -->
<div class="Header">
<script type="text/javascript">
<!--
SetRelativePath("../../../../../");
DrawHeader();
// -->
</script>
<noscript>
<p><b> Pro zobrazení (vložení) hlavičky je potřeba JavaScript </b></p>
</noscript>
</div>
<!-- AUTOINCLUDE END -->
 
<!-- AUTOINCLUDE START "Page/Menu.cs.ihtml" DO NOT REMOVE -->
<!-- ============== MENU ============== -->
<div class="Menu">
<script type="text/javascript">
<!--
SetRelativePath("../../../../../");
DrawMenu();
// -->
</script>
<noscript>
<p><b> Pro zobrazení (vložení) menu je potřeba JavaScript </b></p>
</noscript>
</div>
<!-- AUTOINCLUDE END -->
 
<!-- ============== TEXT ============== -->
<div class="Text">
<p class="Title">
Převod DOC na HTML
</p>
<p class=Autor>
Milan Horkel
</p>
<p class="Subtitle">
Převod dokumentu z programu Word do HTML nelze plně zautomatizovat protože
kvalita podkladu obvykle není dostatečná. Proces převodu lze však celkem
úspěšně zjednodušit a na uživatele zbydou pouze drobné opravné práce.
Podstatou převodu je odstranění všech formátovacích značek a vyčištění
kódu tak, aby mohlo být formátování plně zajištěno pomocí kaskádových
stylů.
</p>
 
<p class="Remark">
Stránka vzniká jak konvertuji další stránky do HTML.
</p>
 
<h1> Úvodem </h1>
 
<p>
Základním problémem převodu je to, že program Word umožňuje uživateli
vkládat do textu spustu formátovacích povelů, které pak nejsou viditelné
a v programu Word se tedy ani nedají odstranit. Bohužel nelze uživatele
omezit pouze na elementy definované v šabloně dokumentu a ani nelze
nadefinovat šablonu tak, aby v ní nebyly nedbytečné předdefinované styly.
</p>
 
<p>
Druhý problém vzniká tím, že uživatelé používají Word nejen jako editor
ale i jako lámací program (protože potřebují aby se výsledek vytiskl dle
jejich představ). Tak se do dokumentu dostávají různé fixní mezery,
lámání stránek a podobné věci. Pokud není autor zvíře, bývá v dokumentu
těchto speciálností jen pár a není problém je odstranit.
Umístění obrázků we Wordu je kapitola sama pro sebe. V HTML se obvykle
umísťují obrázky do samostatných odstavců. Příslušné úpravy nejsou
obtížné.
</p>
 
<p>
Základem úspěchu je použití jednoduché šablony, příliš neformátovat
dokument explicitními nastaveními a už vůbec ne tabulkami (nebo dokonce
tabulkami v tabulkách).
</p>
 
<h1> Export dat z programu Word </h1>
 
<p>
Cílem tohoto kroku je získat hrubá HTML data stránky.
</p>
 
<ul>
<li> Otevřít dokument v programu Word </li>
<li> Uložit jako zjednodušený HTML </li>
<li> Zavřít Word </li>
</ul>
 
<p>
Při ukládání doplníme příponu tak, aby byla ve tvaru XXX.lang.html
(lang je obvykle buď cs nebo en). Soubor uložíme do adresáře DOC/HTML
příslušného projektu/modulu.
</p>
 
<h1> Automatická filtrace značek </h1>
 
<p>
Cílem tohoto kroku je automaticky odfiltrovat co nejvíce nesmyslů
ale moc to nepokazit. Objem stránky klesne asi na 1/3. Odtraní se
skoro všechny formátovací značky a styl.
</p>
 
<ul>
<li> Spustíme HTML Compress </li>
<li> Založíme si v něm seznam souborů funkcní <i>File/New</i> </li>
<li> Do seznamu přidáme náš HTML soubor funkcí <i>Edit/Add</i> a vybereme ho </li>
<li> Nastavíme šablonu MLAB funkcí <i>View/Optimisation</i> rozsvítme volbu <i>Optimisation</i> a zvolíme <i>Optimisation MLAB</i> </li>
<li> Provedeme filtraci funkcí <i>Files/Compress</i> (nebo F9, nebo ikonou s bleskem) </li>
<li> Soubor odstraníme ze seznamu abychom ho omylem příště nepokazili </li>
</ul>
 
<p>
Program nemusíme ukončovat pokud ho budeme potřebovat vícekrát. Pozor je
třeba dát na to, abychom nepustili filtraci znova na už dodělaný soubor.
Pokud se to omylem stane je zde k dispozici funkce obnovy předchozí verze
dokumentu (pokud jste si to v programu nevypnuli).
</p>
 
<p>
Při instalaci je třeba do programu přidat MLAB šablonu. Šablona obvykle
bydlí v adresáři <i>"C:\Program Files\FreeSoft\HTML Compress 5\MLAB.hce"</i>.
Soubor <i>MLAB.hce</i> leží zde
<a href="../../../../../Library/Templates/HTML_Compress/HTML_Compress_5/MLAB.hce">MLAB.hce</a>.
</p>
 
<p>
Program mi nechtěl fungovat pod omezeným účtem obyčejného uživatele.
Dá se ale pustit pod výkonějším uživatelem (funkce <i>spustit jako...</i> ).
</p>
 
<h1> Manuální úklid kódu </h1>
<h2> Formátování kódu </h2>
 
<p>
Cílem toho kroku je sformátovat kód aby se s ním dobře pracovalo.
Současně se automaticky vytvoří pomocné lokální styly, které pak půjdou
snadno zahodit. V tomto kroku přejme na kódování UTF-8.
</p>
 
<ul>
<li> Spustíme editor PSPad a otevřeme soubor </li>
<li> Převedeme formátování na styly funkcí <i>HTML/TiDy/TiDy Upgrade to CSS</i> </li>
<li> Zarovnáme na šířku stránky funkcí <i>HTML/TiDy/TiDy clean Document - Wrap</i> </li>
<li> Nastavíme kódování na UTF-8 funkcní <i>Formát/UTF-8</i> </li>
<li> Uložíme funkcí <i>Soubor/Uložit</i> </li>
</ul>
 
<h2> Použití šablony stránky </h2>
 
<p>
Na začátek souboru přikopírujeme šablonu (prázdnou stránku), tedy
například soubor <i>Template.cs.html</i> a provedeme následující úpravy:
</p>
 
<ul>
<li> Vyplníme název stránky v položce <i>title</i> </li>
<li> Vyplníme klíčová slova v položce <i>meta name="keywords"</i> </li>
<li> Vyplníme popis stránky v položce <i>meta name="description"</i> </li>
<li> Opravíme relativní cesty <i>../../</i>, celkem asi 7x </li>
<li> Přendáme název stránky do značky <i>p class="Title"</i> </li>
<li> Přendáme jméno autora do značky <i>p class=Autor</i> </li>
<li> Přendáme anotaci do značky <i>p class="Subtitle"</i> </li>
<li> Přendáme titulní obrázek do dalšího odstavce typu <i>p class="Subtitle"</i> </li>
<li> Opravíme odkaz na PDF verzi dokumentu </li>
<li> Vezmem text dokumentu od značky <i>h1</i> a nahradíme jím vnitřek vzoru </li>
</ul>
 
<p>
Po těchto úpravách by měla stránka v zásadě fungovat. Měla by mít hlavičku,
patičku, menu, ikonu a případný odkaz na PDF verzi stránky (pokud jsme jej
nesmazali) by měl taky fungovat.
</p>
 
<h2> Mauální úpravy </h2>
 
<p>
Jednotlivé blokové značky ohraničíme prázdnou řádkou před a za. Lépe se
čte zdroják. Někdy je vhodné přesunout některé bloky na jiné místo
(například pokud byly schémata z důvodu rozvržení tisku umístěny na
jiném místě než text, který se k nim vztahuje).
</p>
 
<h3> Opravy nadpisů <i>h</i> </h3>
 
<p>
Z nadpisů odstraníme čísla kapitol a sformátujeme je tak, že jsou
samostatně na řádce.
</p>
 
<samp class="Block">&lt;h1&gt; Nadpis &lt;/h1&gt;</samp>
 
<p>
Občas se stane, že obrázek je uvnitře nadpisu. Ten je třeba dát do
samostatného odstavce <i>p</i>.
</p>
 
<h3> Opravy odstavců <i>p</i> </h3>
 
<p>
Občas se stane, že se nějaký text ocitne mimo značku <i>p</i>. Pak pro
něj vytvoříme vlastní odstavec. Je třeba odstarnit formátování pokud
ještě nějaké zůstalo. Zvýraznění děláme pomocí značek <i>i</i>,
<i>em</i>, <i>b</i>. Značka <i>u</i> není dovolená.
</p>
 
<samp class="Block">&lt;p&gt;
Běžný text odstavce se &lt;i&gt;<i>zvýrazněným textem</i>&lt;/i&gt; uvnitř.
&lt;/p&gt;</samp>
 
<h3> Vyčištění tabulek <i>table</i> </h3>
 
<p>
Z tabulek je třeba odstranit nadbytečné značky <i>p</i> a významné
buňky tabulky (například záhlaví) převést na buňky typu <i>th</i> místo
buněk typu <i>td</i>. Významné buňky obvykle mají buď atributy ve své
značce <i>p</i> nebo jsou ohraničené některou zvýrazňující značkou,
typicky <i>b</i>. Toto dodatečné formátování by se mělo odstarnit.
</p>
 
<p>
Tabulka by měla mít strukturu
</p>
 
<ul>
<li> <i>table</i> tabulka </li>
<li> <i>tr</i> řádka tabulky </li>
<li> <i>th</i> buňka významná nebo <i>td</i> buňka obyčejná </li>
</ul>
 
<samp class="Block">&lt;table&gt;
&lt;tr&gt;
&lt;th&gt; <i>Popisek 1</i> &lt;/th&gt;
&lt;th&gt; <i>Popisek 2</i> &lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; Buňka 1 &lt;/td&gt;
&lt;td&gt; Buňka 2 &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="2"&gt; Spojená buňka 3 a 4 &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</samp>
<table class="Samp">
<tr>
<th> Popisek 1 </th>
<th> Popisek 2 </th>
</tr>
<tr>
<td> Buňka 1 </td>
<td> Buňka 2 </td>
</tr>
<tr>
<td colspan="2"> Spojená buňka 3 a 4 </td>
</tr>
</table>
 
<p>
Uvnitř buňek se dá použít <i>br</i> ale v obyčejných tabulkách není
potřeba značka <i>p</i>.
</p>
 
<p>
Pro změnu chování se dají použít příslušné atributy <i>class</i>,
například <i>class="Center"</i>. Viz návod k použití kaskádového stylu.
</p>
 
<h3> Vyčištění seznamu součástí <i>table class="Soupiska"</i> </h3>
 
<p>
U seznamu součástí provedeme úpravy jako u normální tabulky, doplníme
<i>class="Soupiska"</i> a pokd je tabulka v tabulce tak vnější tabulku
odstraníme.
</p>
 
<p>
Podnadpisy v seznamu součástek (typicky texty jako <i>odpory</i> a
podobně) označíme také značkou <i>th</i>. Tyto texty by měly být v buňce
vzniklé spojením 2 buněk <i>colspan="2"</i>.
</p>
 
<p>
Pokud není první řádka seznamu součástek opatřena popisy <i>Reference</i>
a <i>Hodnota</i> doplníme celou řádku s těmito popisy.
</p>
 
<samp class="Block">&lt;table class="Soupiska"&gt;
&lt;tr&gt;
&lt;th&gt; <i>Reference</i> &lt;/th&gt;
&lt;th&gt; <i>Hodnota</i> &lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th colspan="2"&gt; Odpory &lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; R1 &lt;/td&gt;
&lt;td&gt; 10k &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</samp>
<table class="Soupiska Samp">
<tr>
<th> Reference </th>
<th> Hodnota </th>
</tr>
<tr>
<th colspan="2"> Odpory </th>
</tr>
<tr>
<td> R1 </td>
<td> 10k </td>
</tr>
</table>
 
<h3> Oprava obrázků <i>img</i> </h3>
 
<p>
Nejprve přejemenujeme adresář s obrázky na jméno <i>Pictures</i>.
Původní název je totožný se jménem stránky a bývá velmi dlouhý.
</p>
 
<p>
Obrázek musí mít tyto atributy:
</p>
<ul>
<li> <i>width</i> určuje šířku obrázku (v pixelech) </li>
<li> <i>height</i> určuje výšku obrázku (v pixelech) </li>
<li> <i>src</i> určuje cestu k obrázku </li>
<li> <i>alt</i> určuje alternativní text k obrázku (povinné!) </li>
</ul>
<p>
Například:
</p>
<samp class="Block">&lt;img width=228 height=160 src="Pictures/image002.jpg"
alt="Alternativní popis"&gt;</samp>
 
<p>
 
<h4> Obrázky s popiskami </h4>
 
<p>
Obrázky s popiskami vnikají tak, že se v editoru (Word) vloží obrázek
a ten se opatří textovými poli s ukazateli. Výsledný HTML kód pak
obsahuje obrázek a přes něj tabulku s přesně danými rozměry a v této
tabulce jsou umístěny (jen v některých buňkách) dílčí obrázky.
</p>
 
<p>
Princip položení vektorové grafiky přes JPG obrázek není v zásadě
chybný ale nežádoucí je to, že jsou dílčí obrázky umístěny v tabulce.
Řešení spočívá v tom, že se odstraní tabulka a ponechají se jen obrázky
a do dokumentu (těsně před značku <i>/head</i>) se doplní styl pro
individuální umístění jednotlivých dílčích vetorových obrázků.
Souřadnice se sice dají spočítat ale je snazší doladit je dle
zobrazeného výsledku.
</p>
<p>
Takhle bude vypadat příslušný kousek lokálního stylu. Zvýrazněné jsou
posunutí dílčích obrázků proti hlavnímu obrázku:
</p>
<samp class="Block">&lt;style type="text/css"&gt;
img.<i>Pic1</i> {position:absolute;margin-left:<i>230px</i>;margin-top:<i>10px</i>; }
img.<i>Pic2</i> {position:absolute;margin-left:<i>322px</i>;margin-top:<i>160px</i>; }
&lt;/style&gt;</samp>
 
<p>
A takhle pak bude v textu umístěn obrázek se dvěma vektorovými obrázky
umístěnými nad ním:
</p>
<samp class="Block">&lt;p&gt;
&lt;!-- Vektorová grafika --&gt;
&lt;img class="<i>Pic1</i>" width="331" height="123" src="Pictures/image001.gif"
alt="Vektorový popisek 1"&gt;
&lt;img class="<i>Pic2</i>" width="243" height="101" src="Pictures/image002.gif"
alt="Vektorový popisek 2"&gt;
&lt;!-- Podkladový obrázek --&gt;
&lt;img width="605" height="454" src="Pictures/MainPicture.jpg"
alt="Obrázek s popiskami"&gt;
&lt;/p&gt;</samp>
 
</div>
 
<!-- AUTOINCLUDE START "Page/Footer.cs.ihtml" DO NOT REMOVE -->
<!-- ============== PATIČKA ============== -->
<div class="Footer">
<script type="text/javascript">
<!--
SetRelativePath("../../../../../");
DrawFooter();
// -->
</script>
<noscript>
<p><b> Pro zobrazení (vložení) hlavičky je potřeba JavaScript </b></p>
</noscript>
</div>
<!-- AUTOINCLUDE END -->
 
</body>
</html>