Slideshow pro Linux - návrh zadání

Author Jiří Krutil
Date created 2.11.1998
Project KTTV
CVS $Header: /home/projekt/cvs/plpoint/docs/zapis-39.html,v 2.1 1999/09/09 09:24:37 martin Exp $

Obecně

Cílem je napsat volně dostupný program (i formát) umožňující vytvářet, importovat a předvádět prezentace se zaměřením na výukové účely - skripta, podklady k přednášce (pokud možno tak, aby šlo zkombinovat obojí najednou).

Platforma

Pokud možno Unix i M$ Windows, určitě Linux, samozřejmě pod XWindows.

Struktura dokumentu

Něco podobného jedné Webovské stránce: Základem je text ve formátu HTML (něco jako skripta), do něhož se vkládají obrázky, což jsou v našem případě právě slides. Takový dokument lze použít buď jako knihu (vytisknout jej na papír jako skripta), nebo pouze postupně promítat obrázky jako při prezentaci z PowerPointu. Seznam a pořadí promítaných obrázků by se dalo určit explicitně.
Program by taky mohl umět export do skutečného HTML dokumentu, který by se dal vystavit na Web. Obrázky, které program uchovává jako vektorové, by se exportovaly do bitmapy, takže by je surfař viděl stejně jako při práci s programem. V rámci šetření místa na disku by tak ovšem nebyly uloženy, ale při požadavku na ně by se aktivoval CGI skript, který by zavolal konvertor a ten by na standardní výstup vyslal výslednou bitmapu. Kdybychom se moc nudili, tak uděláme i tu možnost, kdy jsou bitmapy na disku, aby se na frekventovaném serveru neopakovala stokrát denně tatáž konverze.
Zde je velkou výhodou použití formátu HTML uvnitř programu, protože se už nemusí nic převádět, jen se přidá hlavička stránky.

Struktura slidu

Slide je rámeček, do něhož se vektorově kreslí. Mohl by existovat nějaký podklad jednotný pro všechny slidy jedné prezentace. Ten by obsahoval např. záhlaví obrázku a název prezentace, popř. číslo obrázku.
Do slidu se vkládají prvky, které mohou být seskupovány, takže může vzniknout stromová struktura. Prvky jsou například lomená čára, elipsa, mnohoúhelník, rámeček, kruh, "bublina" nebo textový rámeček. Textový rámeček opět obsahuje text ve formátu HTML, tudíž může obsahovat číslované seznamy, tabulky a podobně. Čára může mít na konci nějakou šipku. Každý uzavřený prvek může mít výplň. Textový rámeček může mít barevný podklad, různě barevné písmo a nastavuje se mu příznak průhlednosti. Taky bych poznamenal, že textový rámeček už nemůže obsahovat obrázky.
Jelikož editor slidu je vektorový, lze se všemi prvky hýbat a měnit je. Možná by nebylo na škodu udělat vzájemné "ukotvení" prvků - např. šipka ukazující na textový rámeček se k němu "přilepí" a pokud se ráměček pohne, jeden konec šipky ho následuje. Tohle by ještě chtělo dobře promyslet. Prvky by mělo jít seskupovat a tím umožnit kopírovat nebo přemisťovat celou skupinu objektů, nastavit jim společný atribut (např. barvu) atd. Jak bylo zmíněno, skupina zase může být prvkem jiné skupiny, takže vzniká stromová struktura.
Prvky mají nějaké pořadí do hloubky - něco jako souřadnici z. Tím je dán způsob jejich překrývání. Toto pořadí lze měnit (klasika - jedno tlačítko dá objekt úplně nahoru, jiné úplně dolů). Druhou možností by bylo rozdělovat prvky do vrstev, které by byly také v určitém pořadí "nad sebou" (podobně jako ve Photoshopu).
Filozofie vektorových obrázků v našem programu je následující: Nástroje jsou jednoduché, zaměřené na snadné vytvoření obrázku, který má něco sdělit a ne ohromit. Obrázky se skládají hlavně z jednoduchých tvarů propojených ukotvenými spoji. Uživatel má možnost vytvořit si na základě poskytovaných jednoduchých tvarů nějaký složitější objekt a uložit si jeho vzor do vzorkovníku, z něhož potom může čerpat.

Import a Export

Import z PowerPointu ještě není rozhodnut, ale zdá se, že toto rozhodnutí se ještě dá odložit. Export do HTML jsem už zmínil. Navíc to musí umět export do PostScriptu. Je to velmi rozšířený formát a lze ho tisknout přímo na postscriptovou tiskárnu nebo pomocí dostupných interpretů (GhostScript).

Další poznámky

Co by se ještě mělo rozhodnout