MASARYKOVA UNIVERZITA F}w¡¢£¤¥¦§¨  AKULTA INFORMATIKY !"#$%&'()+,-./012345

Export dat do formát ˚ukanceláˇrských balík ˚u

DIPLOMOVÁ PRÁCE

Richard Georg Bayer

Brno, jaro 2009 Prohlášení

Prohlašuji, že tato diplomová práce je mým p ˚uvodnímautorským dílem, které jsem vypra- coval samostatnˇe.Všechny zdroje, prameny a literaturu, které jsem pˇrivypracování použí- val nebo z nich ˇcerpal,v práci ˇrádnˇecituji s uvedením úplného odkazu na pˇríslušnýzdroj.

Vedoucí práce: Ing. Petr Adámek

ii Podˇekování

Na tomto místˇebych rád podˇekovallidem, kteˇrími pomáhali s realizací této práce. Dˇekuji proto:

• vedoucímu této práce, Ing. Petru Adámkovi, za vedení a smˇerování, za typografické a gramatické rady a opravy a víno;

• Bc. ZdeˇnkuZikánovi za velkou technickou výpomoc pˇrisázením textu;

• Bc. Michalu R ˚užiˇckoviza technickou výpomoc se systémem LATEX; • MarkétˇeKubiesové za pedantní gramatickou kontrolu.

iii Shrnutí

Tato práce si klade za cíl seznámit ˇctenáˇres nejrozšíˇrenˇejšímikanceláˇrskýmibalíky, formáty soubor ˚udokument ˚u,se kterými tyto balíky pracují, a s možnostmi exportu dat z aplikací do tˇechtoformát ˚u.Vybrané možnosti jsou pak ovˇeˇrenyna demonstraˇcníchpˇríkladech. Ctenáˇrjeˇ v úvodu seznámen s problematikou kanceláˇrskýchbalík ˚u,jejich klíˇcovými ˇcástmia možnými metodami práce s jejich dokumenty. Poté je každý kanceláˇrskýbalík roze- bírán po stránce formátu soubor ˚u,které pro své dokumenty používá, možností manipulace s jejich obsahem pˇrímo(programovˇez aplikace). Dále jsou zkoumána programovací roz- hraní (API) balík ˚u,které lze pro manipulaci s obsahem dokument ˚upoužít, a v neposlední ˇradˇeprobírá knihovny, které s vybranými formáty dokument ˚utˇechtobalík ˚uumí pracovat.

iv Klíˇcováslova

Kanceláˇrskýbalík, Export dat, Office Open XML, OOXML, OASIS OpenDocument format, ODF, Microsoft Office, OpenOffice.org, StarOffice, IBM Lotus Symphony, KOffice

v Obsah

1 Úvod ...... 1 2 Kanceláˇrskébalíky ...... 2 2.1 Kanceláˇrskýbalík ...... 2 2.2 Rozdˇeleníbalík ˚u ...... 2 2.3 Výhoda integrace ...... 3 2.4 Klíˇcovéˇcástibalík ˚ua jejich dokumenty ...... 3 2.4.1 Textový procesor ...... 4 2.4.2 Tabulkový procesor ...... 4 2.4.3 Prezentaˇcníprogram ...... 5 2.5 Spolupráce s balíky ...... 5 2.5.1 Zp ˚usobyzpracování dokument ˚ukanceláˇrskýchbalík ˚u ...... 5 3 Pˇrehledvýznamných balík ˚u ...... 7 3.1 Microsoft Office ...... 8 3.1.1 Odboˇckak prvenství Microsoft Office ...... 9 3.2 OpenOffice.org ...... 10 3.3 StarOffice ...... 11 3.4 IBM Lotus Symphony ...... 11 3.5 KOffice ...... 12 4 Formáty dokument ˚u ...... 13 4.1 Microsoft Office ...... 13 4.1.1 Office Open XML ...... 13 4.1.2 OLE 2.0 structured storage ...... 15 4.1.3 ...... 16 4.1.4 Formáty soubor ˚uMicrosoft (Office) Word ...... 16 4.1.5 Formáty soubor ˚uMicrosoft (Office) Excel ...... 17 4.1.6 Formáty soubor ˚uMicrosoft (Office) PowerPoint ...... 17 4.2 OpenOffice.org ...... 18 4.3 StarOffice ...... 18 4.4 IBM Lotus Symphony ...... 18 4.5 KOffice ...... 19 5 API kanceláˇrskýchbalík ˚u ...... 20 5.1 Microsoft Office ...... 20 5.1.1 Technologie COM ...... 20 5.1.2 .NET Framework a COM Interop ...... 21 5.1.3 Objektový model Microsoft Office Word ...... 21 5.1.4 Objektový model Microsoft Office Excel ...... 21 5.1.5 Objektový model Microsoft Office PowerPoint ...... 22 5.2 OpenOffice.org ...... 22 5.3 StarOffice ...... 23 5.4 IBM Lotus Symphony ...... 23

vi 5.5 KOffice ...... 23 6 Externí knihovny pro práci s dokumenty ...... 25 6.1 Apache POI ...... 25 6.2 ExcelPackage ...... 26 6.3 ODF Toolkit ...... 27 6.4 JasperReports ...... 27 7 Analýza a popis možností exportu dat do formát ˚ukanceláˇrskýchbalík ˚u ..... 28 7.1 Ruˇcnípráce se soubory ...... 28 7.2 Použití API kanceláˇrskýchbalík ˚u ...... 29 7.3 Použití externích knihoven pro práci s dokumenty ...... 30 7.3.1 Dokumenty textových procesor ˚u...... 30 7.3.2 Dokumenty tabulkových procesor ˚u ...... 31 7.3.3 Dokumenty prezentaˇcníhoprogramu ...... 31 7.4 Použití XSL pro pˇrevodXML soubor ˚udo formát ˚udokument ˚u ...... 32 7.5 Shrnutí analýzy ...... 32 8 Popis implementací ...... 33 8.1 Vkládání r ˚uznýchdat do dokument ˚uMicrosoft Office ...... 33 8.2 Konverze HTML na formát Microsoft Office Word 2003 ...... 34 8.3 Faktura v Microsoft Office Excel 2007 ...... 36 9 Závˇer ...... 38 Literatura ...... 44 Rejstˇrík ...... 45

vii Kapitola 1 Úvod

Kanceláˇrskýbalík dnes najdeme nainstalovaný témˇeˇrna každém osobním poˇcítaˇci.Práce s kanceláˇrskýmibalíky je považována za souˇcástpoˇcítaˇcovégramotnosti, a tak se formáty v nich tvoˇrenýchdokument ˚ustaly pro obyˇcejnéhouživatele nejbˇežnˇejšímiformáty pro ucho- vání a šíˇreníinformací. At’ už tvoˇrímebˇežnouaplikaci pro osobní poˇcítaˇcenebo pˇreswebový prohlížeˇcpˇrístupnouaplikaci na serveru, výstupy z této aplikace zákazníci ˇcastovyžadují v tˇechtoformátech. Další d ˚uvod,proˇcby v pˇrípadˇetextu bylo vhodné preferovat formát textového proce- soru kanceláˇrskéhobalíku pˇredjiným, napˇr.PDF, je zˇrejmý– každý uživatel jej dokáže v pˇrípadˇepotˇrebyupravit. Dokumenty tabulkového procesoru budou jako výstup prefe- rovat manažeˇri,kteˇrísi nenechají radit pˇrivýpoˇctechnad tˇemitodaty a vzorce do sešit ˚u nebo jejich šablon zadají sami. Nad obsaženými a vypoˇctenýmidaty pak sestrojí ty nejp ˚u- sobivˇejšígrafy. Aplikace konzultant ˚uby nejlépe pˇresvˇedˇciliklienty p ˚usobivouprezentací. Aplikace, která vyhodnocuje klientovu situaci, by šila tyto prezentace na míru. At’ už máme motivaci jakoukoli, ve chvíli, kdy se rozhodneme výstup z aplikace ve formátu kanceláˇrskýchbalík ˚uposkytnout, zbývá rozhodnout, jak tento export dat realizo- vat. Tato práce se pokouší pomoci s tímto rozhodnutím, nastínit r ˚uznémožnosti a úskalí a zejména vytvoˇritjakýsi pˇrehled. Nejprve je probrána základní problematika kanceláˇrskýchbalík ˚u,jejich rozdˇelenídle r ˚uznýchkritérií, základní ˇcásti,ze kterých se tyto balíky bˇežnˇeskládají, a možnosti ex- portu dat do formát ˚ujejich dokument ˚u.Dále je sestaven seznam pˇetirozšíˇrenýchkance- láˇrskýchbalík ˚uspolu se základními informacemi o nich a nastínˇenajejich historie. Práce dále zkoumá formáty dokument ˚u,které každý z balík ˚upˇrednostnˇepoužívá a jejich progra- movací rozhraní (API), návrh a technologie tˇechtorozhraní a možnosti jejich použití. Poté jsou probrány nˇekteréz knihoven, které podporují práci s formáty dokument ˚uprobraných kanceláˇrskýchbalík ˚u.Dále jsou analyzovány možnosti práce s formáty dokument ˚ukance- láˇrskýchbalík ˚ur ˚uznýmimetodami a nastínˇenamožná úskalí. Vybrané možnosti jsou pak demonstraˇcnˇeimplementovány.

1 Kapitola 2 Kanceláˇrskébalíky

V povˇedomívˇetšinyz nás je jen nˇekoliknejrozšíˇrenˇejšíchkanceláˇrskýchbalík ˚u.Již dlou- hou dobu vede v celosvˇetovérozšíˇrenostiMicrosoft Office, kanceláˇrskýbalík americké spo- leˇcnostiMicrosoft Corporation (dále jen Microsoft), následovaný balíkem OpenOffice.org, vyvíjeným spoleˇcnostíSun Microsystems (dále jen Sun) jako svobodný software. Díky po- litice svobodného softwaru vznikla již ˇradabalík ˚uodvozených z OpenOffice.org, které se v mnoha pˇrípadechtaké tˇešívelkému rozšíˇrení.Dále pˇríznivcioperaˇcníhosystému Linux a jiných systém ˚uodvozených z Unixu jistˇeznají kanceláˇrskýbalík KOffice, který je balí- kem vyvíjeným pro desktopové prostˇredíKDE (od verze 2.0 je balík možno provozovat i na poˇcítaˇcíchs Microsoft Windows a Mac OS X).

2.1 Kanceláˇrskýbalík

Kanceláˇrskýbalík je oznaˇcenípro skupinu kanceláˇrskýchaplikací šíˇrenýchjako celek, který nabízí urˇcitýstupeˇnpropojení jednotlivých aplikací v balíku. Do kategorie kanceláˇrských aplikací spadá velké množství r ˚uznýchtyp ˚uaplikací. Zpravidla dnes balíky obsahují tˇri základní souˇcásti,kterými se budeme výhradnˇevˇenovat– textový procesor, tabulkový pro- cesor a program na tvorbu a pˇrehráváníprezentací. Balík m ˚užeobsahovat i mnohé další kanceláˇrskéaplikace, jako emailový klient, rastrové a vektorové grafické editory, editor ma- tematických rovnic, programy pro tvorbu a provoz databáze, groupwarové nástroje a další. Tˇemise ale zabývat nebudeme, protože nejsou stˇredemnašeho zájmu v rámci této práce. [61]

2.2 Rozdˇeleníbalík ˚u

Kanceláˇrskébalíky m ˚užemerozdˇelitdo kategorií podle nˇekolikakritérií: • Dle platformy – jedno možné rozdˇeleníje dle platformy, na které lze daný balí provo- zovat. Snahou zejména svobodného softwaru je stavˇetaplikace na platformˇepokud možno nezávisle. Tak existují balíky, které lze provozovat na vˇetšinˇenejrozšíˇrenˇejších platforem. Jiné mohou být napsány na míru operaˇcnímusystému, nebo napˇríkladna míru grafickému rozhraní, které nad systémem bˇeží,jako KOffice. [16] • Dle licence – balíky m ˚užemedˇelitdle licence, pod kterou je produkt distribuován. Rozšíˇrenébalíky jsou dostupné jako komerˇcníprodukty, jiné jako freeware, kde za

2 2.3. VÝHODA INTEGRACE

použití není tˇrebaplatit, nebo jako svobodný software, kde je dle konkrétní licence možno napˇríkladi produkt modifikovat pro svoje potˇreby.

• Na desktopové a webové aplikace – pˇredchozírozdˇelenítiše pˇredpokládají,že chceme aplikaci, tedy její aplikaˇcníˇcást,provozovat na stroji, u kterého sedíme. Takovým apli- kacím, které kompletnˇebˇežína našem stroji (na našem stolním poˇcítaˇci– na našem desktopu), ˇríkámedesktopové. Jiná možnost je nabízet službu kanceláˇrskéhobalíku jako sít’ovou službu. Tomu se bˇežnˇeˇríkáSoftware as a Service, ˇceskySoftware jako služba. Bˇežnéˇrešeníje tak poskytováno jako služba online, dostupná ve webovém prohlížeˇci.Tento pˇrístupmá velké výhody, ale i slabá místa. Prohlížeˇcewebových stránek jsou k dispozici na témˇeˇrkaždé pro tento úˇcelpoužitelné platformˇe.Dokumenty jsou uloženy na stranˇeserveru a práce s nimi je tak možná kde- koli, kde je na danou službu pˇrístup.Centrální úložištˇedokument ˚uotevírá možnosti sdílení dokument ˚us dalšími uživateli i paralelní práci na tˇechtodokumentech. Jako nevýhodu lze uvést už jen obecnou nevýhodu centralizace. Pokud se útoˇcníkroz- hodne poškodit jméno poskytovatele služby, pocítí to všichni uživatelé, kteˇríslužbu konzumují. Tomu lze samozˇrejmˇedo jisté míry pˇredcházetˇcásteˇcnoudecentralizací – záložními stroji a distribucí zátˇeže.To ovšem riziko neodstraˇnuje,ale jen snižuje. Další nevýhodou je, že webová aplikace bude jen stˇežítak bohatá jako samostatná aplikace. Zatím na technologiích pro webové prohlížeˇcenení balík, který by funkcio- nalitou mohl konkurovat desktopovým balík ˚um.To ale nemusí platit navždy a tˇreba se brzy mocného kanceláˇrskéhobalíku doˇckáme.[61]

2.3 Výhoda integrace

Bˇežnˇejsou jednotlivé aplikace balíku propojeny tak, jak by to samotný operaˇcnísystém neumožnil. Tak m ˚užebýt napˇríkladsouˇcástítextového dokumentu graf, který vykresluje hodnoty z dokumentu tabulkového procesoru. Aplikace v balíku mohou sdílet mnohé rysy návrhu rozhraní – využívat obdobných idi- om ˚ua metafor. Celek tak m ˚užebýt pˇríjemnˇejšímna ovládání, m ˚užebýt snazší se s dalšími ˇcástminauˇcitpracovat.

2.4 Klíˇcovéˇcástibalík ˚ua jejich dokumenty

Jak již bylo nastínˇeno,nezabývá se tato práce exportem dat do formát ˚uvšech ˇcástívšech vybraných balík ˚u,ale jen do formát ˚uˇcástíklíˇcových,jimiž jsou textový procesor, tabulkový procesor a prezentaˇcníprogram. Každý z níže vybraných kanceláˇrskýchbalík ˚utyto ˇcásti obsahuje. Nyní struˇcnˇeke každé z tˇechtotˇríˇcástí.

3 2.4. KLÍCOVɡ CÁSTIBALÍKˇ UAJEJICHDOKUMENTY˚

2.4.1 Textový procesor

Textový procesor je program urˇcenýke zhotovování a úpravˇetext ˚u.Na rozdíl od texto- vého editoru je zamˇeˇreni na formu obsahu (rozložení textu, formátování). Textové proce- sory jsou dnes bˇežnˇev provedení WYSIWYG (What You See Is What You Get, ˇcesky Co vidíš, to obdržíš). Dále bˇežnˇezahrnují kontrolu pravopisu, generování obsahu, generování slovníku pojm ˚ua spoustu dalších. Šablony vzhledu stránky a styl ˚upísem pak urychlují sazbu a zjednodušují zachování uniformity vzhledu. Za první textové procesory a pˇred- ch ˚udcetˇechdnešních se považují stroje IBM MT/ST (Magnetic Tape Selectric Typewriter). Tyto stroje ze šedesátých let umožˇnovalyzadávání a úpravu textu pˇredvytisknutím a po- jem Textový procesor se poprvé objevil ve spojení s nimi. Až pozdˇejiv osmdesátých le- tech byl pojem Textový procesor chápán jako software a to nástupem poˇcítaˇc˚us rastrovými CRT monitory, které mˇelipro malé rozlišení obrazovky jen omezené WYSIWYG schopnosti. Za první opravdové WYSIWYG-textové procesory jsou považovány MacWrite a Microsoft Word, které byly v roce 1984 dostupné pro rastrový stroj Apple Macintosh. [70] Dokument textového procesoru zachycuje tedy obsah a formu. R ˚uznýchmezi sebou ne- kompatibilních formát ˚uje ale hodnˇea liší se i možnostmi. Jednoduché formáty, jako RTF, napˇríkladumožˇnujípouze nastavování velikosti písem, ty nejpokroˇcilejší,napˇríklad ODT, nahrazují funkcionalitou DTP systémy – postaveny na rámcích umožˇnujípˇresnéumist’o- vání odstavc ˚u,tabulek, graf ˚ua obrázk ˚ua dalších multimedií na pˇresnˇedefinovaná místa na stránce apod.

2.4.2 Tabulkový procesor

Tabulkový procesor je program pro interaktivní zadávání a zpracování numerických a al- fanumerických dat v tabulkové formˇe.Bˇežnˇenabízí zobrazení výsledk ˚udo r ˚uznýchgrafic- kých podob. Data jsou rozdˇelenado ˇrádk˚ua sloupc ˚u.Tato tabulka je nazývána list, anglicky worksheet nebo spreadsheet v závislosti na konkrétním softwaru. Každá buˇnkatabulky ob- sahuje bud’ konstantu, nebo vzorec, pro který je bˇežnˇek dispozici množství matematických, statistických, finanˇcnícha jiných funkcí, který se m ˚užeodkazovat na data z ostatních bunˇek, nˇekdyi bunˇekz jiných list ˚u,nebo dokonce jiných dokument ˚u.Program bˇežnˇepodporuje i složitˇejšívýpoˇctypomocí zabudovaného skriptovacího jazyka, nˇekteréprogramy umožˇnují i tvorbu ovládacích formuláˇr˚u.[65] Dokument tabulkového procesoru zachycuje v nejjednodušším pˇrípadˇeobsah využitých bunˇek,resp. pouze uvedenou hodnotu. V ostatních pˇrípadechpak množinu list ˚u,každou využitou buˇnkukaždého listu (konstanta nebo vzorec), formátování bunˇek,umístˇeníjiných objekt ˚ua jejich vlastnosti (grafy, obrázky) a jejich data, pˇrípadnˇei kód funkcí v pˇríslušném skriptovacím jazyce. Další zachycená data a metadata jsou r ˚uznáod formátu k formátu. Jed- ním z nejjednodušších formát ˚uje CSV (Comma-separated values, ˇcesky Hodnoty oddˇelené ˇcárkami). Tento formát je používaný pro pˇrenosdat mezi jinak nekompatibilními systémy. Dalšími formáty jsou napˇr. OASIS OpenDocument format (soubory s pˇríponou .ods) a Office Open XML (Soubory s pˇríponou .xlsx). [6]

4 2.5. SPOLUPRÁCE S BALÍKY

2.4.3 Prezentaˇcníprogram S prezentaˇcnímprogramem je možné tvoˇrit prezentace a poté je promítat. Tyto prezentace mohou obsahovat, mimo formátovaného textu a r ˚uznýchpozadí, diagramy, grafy, tabulky, obrázky, animace a jiná multimedia a objekty. Jednotlivým stránkám prezentace je bˇežnˇe možno pˇriˇraditr ˚uznépˇrechodovéefekty. Výhodou je potom možnost využití více monitor ˚u. Pˇrednášejícím ˚užepotom na svém monitoru vidˇetnásledující stránku, jak dlouho má již souˇcasnoustránku zobrazenou a souˇcasnˇenerušenˇepromítat na plátno stránku, o které pˇrednáší.[64] Dokument prezentaˇcníhoprogramu zachycuje stránky prezentace, jejich vlastnosti, jejich obsah a jiná metadata. Obsah stránky prezentace je obvykle množina polí s definovanými rozmˇerya dalšími vlastnostmi (metadata) obsahující text, diagram, tabulku, obrázek nebo jiná multimedia, nebo také další pole. Ke každému poli je možné doplˇnovatpoznámky a komentáˇre.Tento pˇrístupje použit v nejrozšíˇrenˇejšíchkanceláˇrskýchbalících, ale není vy- louˇcenéke struktuˇreprezentací pˇristupovatzcela jinak.

2.5 Spolupráce s balíky

Castoˇ je tˇrebainformace z aplikací exportovat ve formˇeúhledného textového dokumentu, tabulky nebo prezentace ve formátu, který je mezi konzumenty našeho výstupu rozšíˇrený. Spolupracovat s balíky, nebo resp. s aplikacemi v nich, potˇrebujemeprávˇez d ˚uvod˚ukom- pletní automatizace exportování dat.

2.5.1 Zp ˚usobyzpracování dokument ˚ukanceláˇrskýchbalík ˚u S dokumenty kanceláˇrskýchbalík ˚uje primárnˇepracováno pomocí uživatelského rozhraní kanceláˇrskéhobalíku. Pro automatizaci spolupráce je nˇekolikmožností:

• Zápis do souboru v jeho formátu – pˇrímýmzápisem do formátu dokument ˚ubalíku se pˇríméspolupráci s vlastním kanceláˇrskýmbalíkem vyhneme. Pokud je specifikace for- mátu souboru otevˇrenáa dobˇredokumentovaná, m ˚užemese pokusit programovˇevy- tváˇretnebo mˇenitsoubory pˇrímo.Dnes je mnoho formát ˚udokument ˚ukanceláˇrských balík ˚upostaveno na technologii XML. Díky tomu je orientace v takovém souboru po- mˇernˇesnadnˇejší,je také k dispozici množství knihoven pro práci s obecným XML. K formát ˚umzaloženým na XML máme také ˇcastok dispozici jejich schéma (schémata mají r ˚uznéformáty). Nˇekteréformáty dokument ˚ubyly zdokumentovány tˇretímistranami reverzním inže- nýrstvím. Do jisté míry lze využít i takové dokumentace. Nikdo ale nezaruˇcí,že je dokumentace pˇresná,a zda bude možné vytvoˇrenýsoubor otevˇrítv budoucích ver- zích aplikací tv ˚urce tohoto formátu.

• API balíku/aplikace – souˇcástíkanceláˇrskéaplikace m ˚užebýt API (programovací roz- hraní aplikace), pˇreskteré je možné aplikaci ovládat, pˇredávatdata apod. Balíky po-

5 2.5. SPOLUPRÁCE S BALÍKY

užívají r ˚uznépˇrístupypˇrizveˇrejˇnovánífunkcionality v API, a tak je nˇekterémožno obsluhovat r ˚uznýmiprogramovacími jazyky, nebo nˇekterýmkonkrétním. O tom více v pˇríslušnéˇcásti.

• Knihovny mimo kanceláˇrský balík – pro tvorbu i úpravu dokument ˚ukanceláˇrské aplikace m ˚užebýt výrobcem nebo tˇretístranou vytvoˇrenaexterní knihovna (nebo program) s definovaným rozhraním, která nevyžaduje vlastní kanceláˇrskouaplikaci. Tento pˇrístupm ˚užeprogramátora ušetˇritpatálií se specifikací formátu dokumentu (specifikace m ˚užoubýt velmi rozsáhlé) nebo problémy s použitím vlastního balíku, který je pˇredevšímurˇcenk interaktivní práci.

6 Kapitola 3 Pˇrehledvýznamných balík ˚u

Je obtížné zodpovˇednˇesestavit seznam významných kanceláˇrskýchbalík ˚u.Zprávy o pou- žívanosti r ˚uznéhosoftwaru bývají nespolehlivé, používají nestandardní metody, ale ve vˇet- šinˇepˇrípad˚uv ˚ubecneuvádˇejí,jak byl jejich odhad vytvoˇren,ˇcikde byl získán. V dobˇesvobodného softwaru jsou programy bˇežnˇezdarma ke stažení z Internetu a není ani omezována jejich další distribuce. Jakýkoli program tak m ˚užekdokoli ze svých strá- nek nabízet ke stažení. Je pak obtížné urˇcit,kolikrát byl program uživateli stažen. Samotný poˇcetstažení by již vypovídal o používanosti programu, ale poˇcetaktivních uživatel ˚uprak- ticky zjistit nejde, pokud nemá program zabudovaný mechanizmus hlášení používání, jako dobrovolné registrace, což velká ˇcástuživatel ˚uprincipielnˇeodmítá. Tento výˇcetbyl vytvoˇrens ohledem na ohlasy na kanceláˇrskébalíky v tisku, z výˇct˚u sestavených za úˇcelemtestování, srovnání apod.: [9]

• Microsoft Office;

• OpenOffice.org;

• StarOffice;

• IBM Lotus Symphony;

• KOffice.

Za zmínku stojí i aplikace AbiWord, rozšíˇrenýtextový procesor, který je sice o nˇecojed- nodušší než nejrozšíˇrenˇejšítextové procesory, je ale nenároˇcnýna systémové prostˇredky– má rychlou odezvu a v pamˇetia na disku zabírá minimum místa. Není k nˇemuale dalších aplikací a nepˇrítomnosttabulkového procesoru i prezentaˇcníhoprogramu jej vyluˇcujíz této práce. [49] Za zmínku stojí dále WordPerfect, textový procesor, který byl velmi rozšíˇrenýkoncem 80. a zaˇcátkem90. let. Byl dokonce vedoucím programem svého oboru své doby, když v roce 1986 ve verzi WordPerfect 4.2 pˇrineslautomatické ˇcíslováníodstavc ˚u(ukázalo se být velmi užiteˇcnépro právnické a akademické úˇcely)a napˇr.pˇretékání ˇcástí dlouhých poznámek pod ˇcarou na následující stranu jako v profesionálnˇesázených knihách. Pozdˇejise stal i sou- ˇcástíkanceláˇrskéhobalíku. Chyba ale nastala, když výrobce nevydal zavˇcasverzi pro Micro- soft Windows. S tou poˇckaldo roku 1991, když už platformˇekraloval Microsoft Word 2.0. Jednalo se o verzi WordPerfect 5.1, která mˇelavelmi nepraktickou instalaci z DOSu a byla

7 3.1. MICROSOFT OFFICE proslulá svou nestabilitou. Dále se koncept klávesových zkratek nesluˇcovalse standardními klávesovými zkratkami Windows – napˇríkladAlt-F4 odsazovalo blok textu, ale ve Windows bylo zvykem touto zkratkou ukonˇcovataplikace. Velmi silná stránka WordPerfect byla sada ovladaˇc˚upro množství tiskáren, která se stala zbyteˇcnou,když systém Microsoft Windows obsluhoval tiskárny pˇressvoje ovladaˇce.K tomu navíc používal WordPerfect internˇevlastní znakovou sadu a nepodporoval tak napˇríkladˇcínštinu,která byla ve Windows standardnˇe podporována. [69] V dobˇepádu aplikace WordPerfect dosahuje vrcholu své slávy textový procesor Ami Pro. Tento mohl ve verzi 3.0 být po stranˇefunkcionality pˇrinejmenšímsrovnáván s Micro- soft Wordem 2.0. Byl mnohem snazší na nauˇcenía mnohem pˇríjemnˇejšína ovládání. Dovo- loval tvorbu matematických výraz ˚upodobnˇejako v TEXu, ale ještˇesnáze. Obsahoval kres- lící program pracující s Beziérovými kˇrivkami,bylo dostupných 168 r ˚uznýchtyp ˚ugraf ˚u, mnohé z nich byly 3D. Aplikace podporovala technologii OLE, takže bylo možné kompo- nenty aplikace zobrazovat v jakýchkoli dalších OLE aplikacích. Konec úspˇechuznamenala pro Ami Pro, v té dobˇejiž v podobˇejeho nástupce Word Pro, koupˇesoftwaru vˇcetnˇespoleˇc- nosti, která ho vyvíjela, firmou IBM. Ta nemˇelazájem na pokraˇcováníslibného softwaru a dál jej nepodporovala. Mnohem elegantnˇejšíby bylo, kdyby IBM v té chvíli uvolnila zdro- jové kódy aplikace, jako to udˇelalafirma , když koupila nˇemeckoufirmu StarDivision a jejich StarOffice. Komunita okolo Word Pro byla v té dobˇeˇrádovˇesilnˇejší,než komunita okolo StarOffice. Pˇrípadnésvobodné pokraˇcováníby dnes jistˇepatˇriloke špiˇckám mezi textovými procesory. Více k Ami Pro viz zdroj[1]. Zapomenutých nebo nevýznamných balík ˚uje velké množství. Vˇetšinaz nich není roz- šíˇrenáa dobˇrepodporuje rozšíˇrenéformáty dokument ˚u(formáty dokument ˚urozšíˇrených kanceláˇrskýchbalík ˚u),aby byla v prostˇredívelkých hráˇc˚upoužitelná. Jiné jsou dokonce je- jich detailními klony jak po stranˇevzhledu, tak po stranˇefunkcionality a formátu soubor ˚u. Jiné balíky jsou opuštˇené,protože se jejich vývoj nevyplatí.

3.1 Microsoft Office

Nejrozšíˇrenˇejšíkanceláˇrskýbalík na svˇetˇeje Microsoft Office. Jeho textový procesor Micro- soft Office Word, tabulkový procesor Microsoft Office Excel a prezentaˇcníprogram Micro- soft Office PowerPoint, jsou ve svém oboru nejznámˇejšímiaplikacemi. Balík vychází v nˇe- kolika verzích, urˇcenýmr ˚uznýmúˇcel˚um,lišícími se v souˇcástecha cenˇe.Ty nejzákladnˇejší jsou urˇcenédomácnostem a student ˚um,ty nejvybavenˇejšíprofesionál ˚um.[22] Prvopoˇcátkysouˇcástíbalíku sahají až do roku 1983. Tehdy Microsoft vydal první verzi pozdˇejšíhoMicrosoft Word, tehdy pod názvem Multi-Tool Word pro variantu operaˇcního systému UNIX, pozdˇejipro DOS a poˇcítaˇceMacintosh. Microsoft Excel 1.0 pro poˇcítaˇceMa- cintosh následoval o rok pozdˇeji,nicménˇejeho prvopoˇcátkyse datují do roku 1982, kdy vyšel jeho pˇredekzvaný Multiplan. Microsoft PowerPoint 1.0 vychází v roce 1987, je nástup- cem verze koupené spoleˇcnˇes firmou Forethought, Inc., která produkt pod tímto názvem vyvíjela již od roku 1984. Spojení do balíku se ale tyto souˇcástidoˇckaliaž v roce 1989, kdy Microsoft vydal Microsoft Office pro poˇcítaˇceMacintosh.

8 3.1. MICROSOFT OFFICE

Aktuální verze jsou Microsoft Office 2007, vydaná v roce 2007 pro Windows XP a Win- dows Vista, a Microsoft Office 2008 pro poˇcítaˇceMacintosh – verze pro Mac OS X, která je ekvivalentem Microsoft Office 2007. [25][32] Pozorný ˇctenáˇrsi již možná povšimnul, že se tu názvy ˇcástíbalíku vyskytují ve dvou va- riantách. Microsoft totiž p ˚uvodnˇeaplikace distribuoval i zvlášt’ a nejen jako souˇcástbalíku Microsoft Office. Pozdˇeji,kdy se aplikace stali neoddˇelitelnouˇcástíbalíku, Microsoft jednot- livé ˇcástipˇrejmenovaltak, že do jejich názvu pˇridalslovíˇcko Office. Poˇcínajeverzí Microsoft Office 2003 je napˇr.správný název aplikace Microsoft Office Word, Microsoft Office Excel nebo Microsoft Office PowerPoint.

3.1.1 Odboˇckak prvenství Microsoft Office

Microsoft nejvíce vyrostl v 80. a 90. letech, kdy se každý rok prodalo více nových osobních poˇcítaˇc˚u,než jich bylo na svˇetˇev provozu. Prakticky to znamenalo, že pokud jste vyrobili produkt, který fungoval jen na nových poˇcítaˇcích,do roka nebo do dvou mohl ovládnout vˇetšinutrhu, aniž by na nˇejnˇekdopˇrešelze starší nebo konkurenˇcníverze. To je jeden z d ˚u- vod ˚u,proˇcve své dobˇeWord a Excel vytlaˇcilikonkurenˇcníprodukty jako WordPerfect a Lotus z trhu. Microsoft poˇckalna další vlnu zmˇenhardwaru a prodal velkým spoleˇcnos- tem spoleˇcnˇes poˇcítaˇciposlední verzi operaˇcníhosystému i kanceláˇrskéhobalíku, což nový uživatel ocenil. Castoˇ totiž tyto firmy kupovali poˇcítaˇcepoprvé, nebo doplˇnovalinové do poˇctu,ale nesetkali se doposud s pˇrechodymezi softwarem r ˚uznýchverzí nebo výrobc ˚u. Nyní, když je svˇetve srovnání se zmínˇenýmobdobím vcelku použitelnými poˇcítaˇcinasy- cen, prodej spoleˇcnostiMicrosoft nejde tak, jako dˇrív. Není již napˇríkladsnadné protlaˇcit nˇejakýprodukt na vedoucí pozice zp ˚usoby, kterými to bylo možné doposud. Jediné možné ˇrešení,jak produkt na vedoucí pozice dostat, je pˇresvˇedˇcituživatele k pˇrechoduna novou verzi. Nyní, když už ale Microsoft nem ˚uževyužít vln masivního prodeje nového hardwaru k šíˇrenínových verzí svých softwarových produkt ˚u,pˇricházína ˇradukonkurenˇcníboj. Uži- vatelé, kteˇrínemají dán pod nos kompletní balíˇcek poˇcítaˇc+ Windows + Office, více než dˇrívpˇrednákupem nové verze srovnávají Microsoft Office s alternativními kanceláˇrskými balíky po stranˇevýbavy i ceny. Kombinace slov Zdarma a Kompatibilní s Microsoft Office se zde ukazují být velmi sympatické. A tím jsme se dostali k OpenOffice.org a balík ˚umz nˇeho odvozených. Jedním ze zajímavých kanceláˇrskýchbalík ˚uodvozených od OpenOffice.org je RedOffice. Jedná se o kanceláˇrskýbalík vyvíjený ve firmˇeBeijing Redflag Chinese 2000 Software Co., Ltd., který se díky podpoˇreze strany ˇcínskévlády (je ve velkém nasazován ve státní správˇe) tˇešímasivnímu rozšíˇrenív Cínˇe.Právˇetatoˇ podpora možná ˇcasemzamíchá poˇradív ce- losvˇetovémrozšíˇreníkanceláˇrskýchbalík ˚u. Cínaˇ se snaží vymanit z pout proprietárních standard ˚u,a tak na státní úrovni definuje své nové propracované domácí standardy, zalo- žené na svobodném softwaru. Když si pak uvˇedomíme,že ony pomyslné vlny rozšiˇrování poˇcítaˇc˚uv rozvíjející se Cínˇestáleˇ ještˇeprobíhají, a jak je Cínaˇ po stranˇepoˇctu(vˇcetnˇepoten- ciálních) uživatel ˚uveliká, vidíme, že se procenta zastoupení kanceláˇrskýchbalík ˚umohou

9 3.2. OPENOFFICE.ORG zmˇeniti dramaticky. Cínaˇ navíc velmi úspˇešnˇepracuje na svém e-Governmentu1 a zamýšlí jednotnˇepoužívat jak pro vnitˇrnítak vnˇejšíkomunikaci jednotný formát dokument ˚u,a to konkrétnˇetakzvaný Uniform Office Format2. Klíˇcovéje, že stát bude tento formát použí- vat pro komunikaci s obˇcanya jinými právními subjekty. Kanceláˇrskýbalík RedOffice jde s tímto formátem ruku v ruce, dále je zdarma, kompatibilní s Microsoft Office a tˇešíse, jak již bylo ˇreˇceno,podpory ˇcínskévlády. Jaký kanceláˇrskýbalík obˇcannebo jiný právní subjekt nakonec bude preferovat, se ještˇeukáže. Microsoft již ve spolupráci s Beihang University pracuje na obousmˇernémpˇrevodníkumezi svými aktuálními formáty soubor ˚ua Uniform Office Format. Pokud se ještˇeMicrosoftu podaˇríkampaní pˇresvˇedˇcitlid Cíny,ˇ že k nákupu Microsoft Office je d ˚uvod,možná se na druhou stranu dramatických zmˇenzmínˇenýchˇcísel nedoˇckáme.[14][31][41][29]

3.2 OpenOffice.org

OpenOffice.org, zkrácenˇe OpenOffice nebo jen OOo, je kanceláˇrskýbalík šíˇrenýjako svo- bodný software (licence tohoto balíku je LGPL) obsahující mimo textového, tabulkového procesoru a programu pro tvorbu a pˇrehráváníprezentací grafický editor, systém ˇrízenída- tabáze a aplikaci pro tvorbu a úpravu matematických výraz ˚u.Má širokou škálu funkcí a je pˇrenositelnýna velké množství platforem. Textový procesor balíku je aplikace Writer, tabul- kový procesor je Calc a prezentaˇcníprogram je Impress. Balík je šíˇrenpˇrevážnˇepˇresinternet, kde je ke stažení z mnoha míst. Ke stažení ho díky licence m ˚uženabízet každý, a tak není možné pˇresnˇeˇríct,kolikrát byl balík koncovými uživateli stažen, natož pak kolik uživatel ˚uOpenOffice.org používá. Instalaˇcnísoubor neobsahuje pˇrevratnémnožství dat, jako šablon a klipart ˚u,aby staho- vání nebylo nároˇcnépro uživatele se slabším pˇripojením.Všechna tato data, zásuvné mo- duly apod. je možno stahovat z repositáˇrerozšíˇrení. OpenOffice.org je dostupný pro operaˇcnísystémy Microsoft Windows, Apple Mac OS X, OS/2, Linux, Solaris (pro architektury x86 i SPARC), FreeBSD a další systémy odvozené z UNIXu. Existuje i nˇekolikodvozených projekt ˚u,které jsou pˇrizp˚usobenybˇehuna dalších platformách. Podpora ReactOS je pˇripravována.[36] V roce 2000 vzešel OpenOffice.org ze zveˇrejnˇenýchzdrojových kód ˚u StarOffice a je od té doby samostatnˇevyvíjen. Aktuální verze StarOffice jsou postavené na OpenOffice.org. Verze OpenOffice.org Portable, také zvaná Portable OpenOffice.org, je provozovatelná na strojích s Microsoft Windows z USB flash disku bez zanechání jakýchkoli záznam ˚unebo dat na stroji, který jej spustil. Primární ukládací formát OpenOffice.org je OpenDocument format, ale o tom více poz- dˇeji.Lze samozˇrejmˇeotevírat a ukládat i soubory formát ˚uMicrosoft Office. Od verze Open- Office.org 3.0 jsou podporován i nové formáty Office Open XML, používané v Microsoft

1. Elektronizace výkonu veˇrejnésprávy – jedná se o transformaci vnitˇrnícha vnˇejších vztah ˚uveˇrejnésprávy pomocí informaˇcnícha komunikaˇcních technologií. 2. Tomuto formátu se tu vˇenovatnebudeme, snad jen nastínit, že je to formát inspirovaný ODF, který zejména vychází vstˇrícdalším potˇrebám Cínskéˇ lidové republiky. [14]

10 3.3. STAROFFICE

Office 2007 a Microsoft Office 2008 pro poˇcítaˇceMacintosh. [58] OpenOffice.org má jednu pˇríjemnouvlastnost, a to, že m ˚užeoperovat v takzvaném ser- verovém módu. Od verze OpenOffice.org 1.1 je možné aplikaci spouštˇets parametrem - headless, který zp ˚usobí,že aplikace nabˇehnebez uživatelského rozhraní. Tento serverový mód je zamýšlený právˇepro použití s API, kdy je aplikace používána zvenˇcíjako nástroj na komplexní úkony s dokumenty, jako tˇrebapˇrevodymezi r ˚uznýmiformáty. [44]

3.3 StarOffice

StarOffice je kanceláˇrskýbalík vyvíjený firmou Sun Microsystems. Jeho nejstarší souˇcást, textový editor StarWriter, byla poprvé zveˇrejnˇenav roce 1985 tehdy vyvíjející firmou Star Division. Teprve 1995 tato firma sestavila kompletní kanceláˇrskýbalík, který i s firmou kou- pila firma Sun Microsystems v roce 1999. Sun krátce poté zveˇrejnilzdrojové kódy tohoto ba- líku a vznikl tak již zmínˇenýsvobodný kanceláˇrskýbalík OpenOffice.org. Ten se stal rychle populárním a vzniklá komunita s podporou firmy Sun dále balík vyvíjí. Nové verze Star- Office mají témˇeˇrkompletní kód pˇrevzatýz OpenOffice.org. [66] V ˇcemje tedy rozdíl mezi tˇemitobalíky? Zjednodušenˇeˇreˇcenoje StarOffice placený. Studenti a zamˇestnanciškol mohou balík používat zdarma. V ostatních pˇrípadechje balík licencován na osobu, nikoli na instalaci. Za relativnˇemalý obnos získává zákazník podporu od Sunu, napˇr.zodpovídání otázek spo- jených s pˇrechodemz Microsoft Office, dále je s produktem dodáno množství rozšíˇrenía obsahu, které je u OpenOffice.org nutno zvlášt’ stahovat z repositáˇr˚u,ale také nˇekolikroz- šíˇreníplacených, která z repositáˇr˚uOpenOffice.org zdarma nezískáte. Takovými je napˇr. modul pro naˇcítánísoubor ˚uWordPerfect, lepší kontrola pravopisu, nebo sady kvalitních font ˚u.Sun také vydává updaty k StarOffice, zatímco uživatel OpenOffice.org musí stahovat vždy celý balík. Je ale namístˇedodat, že jak placené moduly, tak podporu od Sunu si lze koupit i pro OpenOffice.org. A také kumulativní updaty nejsou velkou výhodou, nebot’ velikost updatu pro StarOffice m ˚užebýt i stejná, jako celá instalace OpenOffice.org. [43][3] Textový procesor nese jméno StarWriter, tabulkový procesor StarCalc, prezentaˇcnípro- gram StarImpress. Balík dále obsahuje grafický editor, systém ˇrízenídatabáze a aplikaci pro tvorbu a úpravu matematických výraz ˚u,ve starších verzích obsahoval další aplikace, jako emailový klient, HTML editor, nebo webový prohlížeˇc.[42]

3.4 IBM Lotus Symphony

Pod znaˇckou Lotus Symphony prodávala firma Lotus Software, kterou pozdˇejikoupilo IBM, kanceláˇrskýbalík pro DOS, který mˇelstavˇetna úspˇechuaplikace Lotus 1-2-3, jehož pokra- ˇcovatelbyl jeho souˇcástí.Balík se ale nedoˇckaltakového rozšíˇreníani popularity. Po dlouhé odmlce vyšel balík se stejným jménem opˇetaž v roce 2007, nyní již vyvíjený firmou IBM. Ze staré aplikace pˇrevzalanová pouze jméno, kód byl pˇrevzatz jádra Open- Office.org 1.1.4, rozhraní je postavené na Eclipse Rich Client Platform.[56]

11 3.5. KOFFICE

Oproti OpenOffice.org nabízí IBM Lotus Symphony pˇríjemnˇejšírozhraní. Dokumenty jsou napˇríkladotevírány do záložek, nabídky jsou dobˇreumístˇeny. Balík je ale velmi nároˇcný na systémové prostˇredky. Výpoˇcetníhoˇcasui pamˇetipotˇrebujepro práci pˇribližnˇedvakrát tolik, co OpenOffice.org. [18] V souˇcasnédobˇese balík skládá pouze ze tˇríˇcástí,a to z:

• textového procesoru IBM Lotus Symphony Documents

• tabulkového procesoru IBM Lotus Symphony Spreadsheets

• prezentaˇcníhoprogramu IBM Lotus Symphony Presentations

3.5 KOffice

KOffice je kanceláˇrskýbalík pro desktopové prostˇredíKDE šíˇrenýjako svobodný software pod GPL-kompatibilními licencemi (GPL, LGPL, BSD apod.) obsahující textový procesor KWord, tabulkový procesor KSpead, prezentaˇcníprogram KPresenter a dále prostˇredípro tvorbu databází a databázových aplikací Kexi, aplikaci Kivio pro tvorbu vývojových dia- gram ˚u, KChart pro tvorbu graf ˚ua jiných diagram ˚u,vektorový grafický editor Karbon14, rastrový grafický editor Krita, aplikaci pro tvorbu a úpravu matematických výraz ˚u KFor- mula, program pro správu a plánování projekt ˚u KPlato a reportovací systém Kugar. ProstˇredíKDE bylo doposud k dispozici jen pro UNIXové operaˇcnísystémy, ale od verze KDE 4.x bude k dispozici i pro Microsoft Windows a Mac OS X. Proto i další verze kance- láˇrskéhobalíku KOffice s ˇcíslem2.x bude provozovatelná na tˇechtoplatformách. Problém v pˇrenositelnostiprostˇredíKDE pramenil z licence použité knihovny QT, která od verze 4.x mˇenílicenci na GPL, na které KDE 4.x staví. KOffice používá primárnˇeformáty Open Document Format, naˇcítáale i mnoho jiných formát ˚u.Starší binární formáty Microsoft Office (., .xls apod.) jsou podporovány jen ˇcásteˇcnˇe– složitˇejšídokumenty nejsou uspokojivˇenaˇcteny, formáty Office Open XML pod- porovány nejsou a, dle výpovˇedivývojáˇr˚u,ani v blízké dobˇenebudou. [15][16] Historii poˇcátk˚uKOffice je obtížné dohledat. Clánkyˇ zachycující vývoj v poˇcátcíchbyly ze stránek s novinkami ˇcasemvypuštˇenynebo zmizely. Vývojáˇrise za 11 let vývoje obmˇenili a z p ˚uvodníchnez ˚ustaltémˇeˇrnikdo. Dohledat se podaˇrilopouze nˇekolikstˇrípk˚u. V roce 1999 vyšla první alfa-verze. Nˇekteréˇcástibyly již v té dobˇedo urˇcitémíry po- užitelné, jiné byly rozpracované ve velmi raném stádiu. Více viz ˇclánekTorbena Weise[47] [7].

12 Kapitola 4 Formáty dokument ˚u

Pro úˇcelydokument ˚ukanceláˇrskýchaplikací se používají podstatou binární i textové sou- bory. Binární soubory, jejichž obsah není pro ˇclovˇekasnadno ˇcitelnýa jehož každý bit m ˚uže aplikace interpretovat jako jiný datový typ, jsou napˇríkladve formˇedokument ˚uaplikace Microsoft Word s pˇríponou .doc velmi rozšíˇrené.Mají ale praktické nevýhody a jsou proto na ústupu pˇredformáty založenými na XML. Ty by ale vˇetšinoubyly zbyteˇcnˇeveliké a tak jsou takové soubory obvykle komprimovány, napˇríkladmetodou . Textové soubory jsou dnes používány pˇrevážnˇe,zejména díky XML. Na XML jsou po- staveny hlavní formáty soubor ˚unejrozšíˇrenˇejšíchbalík ˚u.Jsou ale i textové formáty doku- ment ˚u,které nejsou formátem XML. Známým zástupcem je napˇríklad RTF. Formát souboru m ˚užebýt proprietární, což znamená, že je chránˇenpatentem nebo au- torským právem. Majitel tˇechtopráv se tak chce napˇríkladbránit zpˇetnémuinženýrství. Na opaˇcnémkonci stojí formát otevˇrený.Specifikace takového formátu je veˇrejná,ˇcastoudržo- vaná nˇejakoustandardizaˇcníorganizací. Na použití takového formátu nejsou kladena žádná omezení a je implementován jak do proprietárního, tak do svobodného softwaru bez rizika sankce.

4.1 Microsoft Office

Asi nikoho nepˇrekvapí,že každá aplikace balíku používá jinou pˇríponuu soubor ˚usvých dokument ˚u.Bˇehemdlouhé historie balíku a jeho souˇcástíse formáty soubor ˚ujednotlivých souˇcástínˇekolikrátzmˇenily. Napˇr.pˇríponu .doc používají dokumenty Microsoft (Office) Word od prvopoˇcátku,nicménˇez r ˚uznýchverzí aplikace nejsou soubory mezi sebou kom- patibilní. Nové verze aplikace umí samozˇrejmˇenaˇcístty starší. Podobnˇeformáty soubor ˚u Microsoft (Office) Excel i Microsoft (Office) PowerPoint.

4.1.1 Office Open XML

Aktuální formáty soubor ˚udokument ˚ukanceláˇrskéhobalíku odpovídají mezinárodnímu standardu Office Open XML (nebo zkrácenˇe OOXML), pˇresnˇejiˇreˇcenopˇribližnˇeodpovídají. Microsoft vydal balík Microsoft Office 2007 ještˇepˇredukonˇcenímstandardizace nezisko- vou organizací Ecma International. Výsledný mezinárodní standard ISO/IEC 29500:2008, InformaˇcníTechnologie – formáty Office Open XML, který byl uveˇrejnˇen18. listopadu 2008,

13 4.1. MICROSOFT OFFICE obsahuje drobné zmˇeny, které balík samozˇrejmˇeneimplementuje. Standard bude ale d ˚u- slednˇedodržován v balíku následujícím s název Microsoft Office 2010, tvrdí Microsoft na svých stránkách[23]. [59] Zpráva o zveˇrejnˇenístandardu charakterizuje vydanou dokumentaci takto:

ISO/IEC 29500 je standardem pro dokumenty textových procesor ˚u,prezentací a tabulkových procesor ˚upro implementaci v široké škále aplikací na libovolné platformˇe.Jedním z cíl ˚uje zaruˇcitdlouhodobé uchování dokument ˚uvytvoˇre- ných bˇehemposledních dvou desetiletí pomocí program ˚u,které se stávají ne- kompatibilní s pokroky na poli informaˇcníchtechnologií. [13]

Microsoft na svých stránkách k formátu uvádí:

Formáty Office Open XML jsou navrženy tak, aby dokumenty v tˇechtoformá- tech bylo možné vytváˇreta pˇristupovatk nim v ˇradˇeaplikací na ˇradˇeplatforem. Pomocí formátu Office Open XML lze pˇrímomanipulovat s formátem soubor ˚u. Soubory lze vytvoˇritnebo k nim pˇristupovati bez aplikací systému Microsoft Office. Je otevˇrený.Formát Office Open XML má otevˇrenoulicenci a dokumentaci. Je upˇresnˇenv otevˇrenémprocesu organizace Ecma, takže funguje napˇríˇcširokou skupinou platforem, aplikací a zp ˚usob˚upoužití. Je to formát XML. Formát Office Open XML je standardní technologií, kterou m ˚užejednoduše a transparentnˇepoužívat ˇradanástroj ˚ua aplikací. Je zpˇetnˇekompatibilní a interoperabilní. Tato vlastnost umožˇnujezachovat bˇe- hem pˇrevodudokument ˚udo otevˇrenéhoa moderního formátu jejich p ˚uvodní podobu. R ˚uznéaplikace mohou navíc používat formát Office Open XML s pˇred- vídatelnými výsledky. Funguje požadovaným zp ˚usobemdíky podpoˇrevlastního schématu XML, do- stupným aktualizacím pro stávající verze systému Office a díky podpoˇred ˚uleži- tých funkcí pˇrístupnostipro postižené uživatele. Formát je pˇripravenna budoucí vývoj. V rámci formátu Office Open XML lze k tvorbˇedokument ˚upoužít všechny funkce aplikací systému Microsoft Office 2007. Formát Office Open XML umožˇnujepoužít podmnožinu tˇechtofunkcí nebo jejich rozšíˇrení,pˇriˇcemžzajišt’uje jejich soulad. M ˚užepomoci zvýšit zabezpeˇcení.Postupy a aplikace zabezpeˇceníIT mohou snadnˇejiobjevit a opravit potenciální problémy, pˇriˇcemžse sníží pravdˇepodob- nost poškození dokument ˚u. ... Formáty Office Open XML používají k uložení informací o souboru Office Open XML na disk pravidla OPC (Open Packaging Convention). [24]

14 4.1. MICROSOFT OFFICE

I pˇrespodrobnou dokumentaci stále není zápis do nového formátu snadnou záležitostí. Je nutné si uvˇedomit,jak široké možnosti formát poskytuje. Samotná norma formátu má více jak sedm tisíc stran. V tomto rozsahu pokrývá dokumenty textového procesoru, doku- menty tabulkového procesoru a prezentací, zabývá se konvecní Open Packaging Conven- tions, zp ˚usobyrozšiˇrováníformátu a mechanizmy pro podporu starých formát ˚uMicrosoft Office. Soubory tohoto formátu jsou komprimované dle Open Packaging Convention. Struk- tura je struˇcnˇeˇreˇcenoZip archív, který obsahuje soubory tvoˇrícísamotný dokument. Vlastní data jsou ve formátu XML jako samostatné soubory (napˇr.tˇelodokumentu, definice styl ˚u), vztahy mezi tˇemitosoubory jsou definovány v dalších souborech. Archív dále m ˚užeobsa- hovat pˇrílohy, jako obrázky a jiná multimédia, nebo i další dokumenty. Dokument tedy m ˚užeobsahovat nˇekolikXML soubor ˚upsaných ve znaˇckovacíchjazy- cích dle aplikace. Pro dokumenty Microsoft Office Word je jazyk WordprocessingML, pro se- šity Microsoft Office Excel je jazyk SpreadsheetML, pro prezentace Microsoft Office Power- Point je jazyk PresentationML. Spoleˇcnéjazyky jsou pak napˇr. Office Math Markup Lan- guage pro popis matematických výraz ˚u,nebo DrawingML pro popis vektorové grafiky a diagram ˚u.Formát m ˚užebýt rozšíˇreno další znaˇckovacíjazyky. [60] Soubory nesou bˇežnˇepˇríponukonˇcícípísmenem x. K tˇemtosoubor ˚umjsou protˇejšky zakonˇcenépísmenem m, které mají navíc povolená makra. Ve výˇctechdále jsou tyto opomí- jeny.

4.1.2 OLE 2.0 structured storage

Kanceláˇrskýbalík Microsoft Office ve verzích pˇredMicrosoft Office 2007 používal primárnˇe binární ukládací formáty postavené na technologii Structured storage (také zvané Com- pound documents), která je podmnožinou OLE 2.0. Tyto formáty jsou stále ještˇevíce roz- šíˇrené,než aktuální formáty balíku. Technologie Structured storage je v podstatˇesouborový systém, podobný souborovému systému FAT, uvnitˇrjednoho souboru. Smysl tohoto formátu souboru je zejména odproš- tˇeníse od problém ˚unízké úrovnˇe.Pokud se napˇríkladve velkém souboru rozrostou nebo zmenší nˇejakádata na jeho zaˇcátku,je nutné v jednoduchém souboru, který by byl jen po- sloupností byt ˚u,zbytek posunout dle zmˇeny. To by ale mohla být ˇcasovˇenároˇcnáoperace. Structured storage využívá bloky, bˇežnˇevelikosti 512 byt ˚u,které jsou alokovány a uvol- ˇnoványdle potˇreby. Soubor obsahuje proudy podobné soubor ˚uma úložištˇepodobné slož- kám v souborovém systému, které mohou obsahovat proudy nebo další úložištˇe.První blok souboru je hlaviˇckovýblok, který obsahuje informace o umístˇenídalších klíˇcovýchblok ˚u v souboru. [21][59] Do záˇrí2006, kdy Microsoft vydal dokument Microsoft Open Specification Promise, mohl každý, kdo práci s tímto proprietárním formátem implementoval do své aplikace, ˇcelit žalobám ze strany Microsoft pro porušení patentu. Microsoft se tímto dokumentem zava- zuje formáty veˇrejnˇedokumentovat a neomezovat jejich využití. Specifikaci bylo možné od Microsoftu získat na požádání i pˇredtím. Do té doby vzniklo nˇekolikdokumentací to-

15 4.1. MICROSOFT OFFICE hoto formátu od tˇretíchstran, které se specifikaci pokusili sestavit reverzním inženýrstvím. V ˇcervnu2008 pak Microsoft zveˇrejnilspecifikaci tohoto formátu. [27] Pro zajímavost – pˇridokumentování tohoto formátu zpˇetnýminženýrstvím nejprve do- spˇeldokumentující tým k názoru, že je formát zámˇernˇesložitý, aby jej bylo obtížné pochopit a implementovat. Formát napˇríkladzmˇenynemusí zanášet do vlastních dat, ale umožˇnuje tvoˇritrozdílové záznamy ve vyhrazených proudech. Když knihovna pro práci s tímto for- mátem vznikala, dostala od svých tv ˚urc ˚unázev POI, což je zkratka Poor Obfuscation Im- plementation, ˇceskypˇribližnˇe Uboze implementovaná obfuskace. K této knihovnˇese dosta- neme pozdˇeji. Microsoft Open Specification Promise bohužel problémy s pˇrípadnýmispory o patenty neˇreší,nebo ne zcela. Touto problematikou se zabývala mimo jiné organizace Software Free- dom Law Center. V její analýze Open Specification Promise ve vˇecikompatibility s GPL se doˇcteme,že sice Microsoft své sliby dává neodvolatelnˇe,ale toto tvrzení pozdˇejiv prohlá- šení oslabuje tím, že uvádí: Zaˇrazenínových verzí specifikací, dˇrívena seznamu uvedených, bude posuzo- váno jednotlivˇe. S pˇríchodemnových verzí standardu tak m ˚užeMicrosoft od neodvolatelného slibu kdy- koli odstoupit tím, že novou verzi standardu explicitnˇena seznam neuvede. Problém ˚uje ale více. Ve výsledku se nelze pˇrivývoji GPL projekt ˚una Open Specification Promise spolehnout. Více viz pˇríslušnézdroje. [37]

4.1.3 Rich Text Format Rich Text Format je pomˇernˇejednoduchý textový formát vyvinutý firmou Microsoft v roce 1987. Text v souboru je v ASCII kódování, další znaky jsou podporovány escape-sekvencemi. Formát používá pˇríkazy(sekvence znak ˚uzaˇcínajícízpˇetnýmlomítkem) a bloky platnosti pˇríkaz˚u(oznaˇcenésloženými závorkami). Dále obsahuje text. Formát samozˇrejmˇeumož- ˇnujemnohem více, napˇr.zapouzdˇritobrázky. Klíˇcovéje, že vytvoˇrenízákladního doku- mentu v RTF je snadné. Pˇríponatˇechtosoubor ˚uje zpravidla .rtf.[28]

4.1.4 Formáty soubor ˚uMicrosoft (Office) Word Soubory aplikace Microsoft (Office) Word nesou pˇríponu .doc a od verze 2007 také .docx. Jak již bylo zmínˇeno,r ˚uznégenerace aplikace produkovaly soubory v r ˚uznýchformátech spolu nekompatibilních. Hrubˇelze formáty soubor ˚urozdˇelitdo pˇetigenerací: [68]

• Microsoft Word pro DOS – pˇrípona .doc;

• Microsoft Word 1 a 2 pro Windows, Microsoft Word 4 a 5 pro poˇcítaˇceMacintosh – pˇrípona .doc;

• Microsoft Word 6 a Microsoft Word 95 pro Windows, Microsoft Word 6 pro poˇcítaˇce Macintosh – pˇrípona .doc;

16 4.1. MICROSOFT OFFICE

• Microsoft Word 97, 200, 2002 a Microsoft Office Word 2003 pro Windows, Word 98, 2001, X a Microsoft Office Word 2004 pro poˇcítaˇceMacintosh – Microsoft Word zaujal na trhu textových procesor ˚udominantní pozici koncem devadesátých let minulého století. Jeho primární ukládací formát (binární s pˇríponou .doc, postavený na techno- logii OLE 2.0 structured storage) se tak pro uživatele stal de facto standardem. Bˇežnˇe užívaným oznaˇcenímDokument Microsoft Word je dnes myšlen právˇebinární formát Microsoft Word 97 – 2003.

• Microsoft Office Word 2007 pro Windows, Microsoft Office Word 2008 pro poˇcítaˇce Macintosh – používá soubory dle standardu Office Open XML s pˇríponou .docx jako sv ˚ujhlavní ukládací formát.

4.1.5 Formáty soubor ˚uMicrosoft (Office) Excel Microsoft Office Excel 2007 používá jako sv ˚ujprimární formát Office Open XML v soubo- rech s pˇríponouxlsx. Pˇredtouto verzí byl primárním formátem proprietární binární formát Binary Interchange File Format (BIFF) v souborech s pˇríponou .xls. Tohoto formátu exis- tovalo, podobnˇejako pro Microsoft Office Word, nˇekolikgenerací, které mezi sebou nejsou kompatibilní. Dnes se m ˚užemesetkat s tˇemitoverzemi soubor ˚u:

• Microsoft Excel 5.0 – BIFF 5 s pˇríponou .xls;

• Microsoft Excel 95 – BIFF 7 s pˇríponou .xls;

• Microsoft Excel 97, Microsoft Excel 2000, Microsoft Excel 2002 a Microsoft Office Excel 2003 – BIFF 8 s pˇríponou .xls;

• Microsoft Office Excel 2007 a Microsoft Office Excel 2008 pro poˇcítaˇceMacintosh – formát dle standardu Office OpenXML s pˇríponou .xlsx.

Všechny zmínˇenéformáty BIFF s pˇríponou .xls jsou internˇeorganizovány dle OLE 2.0 structured storage, která byla již struˇcnˇepopsána dˇríve.Formát je taktéž proprietární, do- kumentaci bylo možné získat od spoleˇcnostiMicrosoft na požádání. Od února 2008 je spe- cifikace formátu zveˇrejnˇená.Opˇetse na ni vztahuje licenˇcnípolitika Open Specification Pro- mise. [24][35][54]

4.1.6 Formáty soubor ˚uMicrosoft (Office) PowerPoint Microsoft PowerPoint do verze 2003 používal binární formáty postavené na technologii OLE 2.0 structured storage. Jejich dokumentace, obdobnˇejako u aplikací Microsoft Excel a Microsoft Word, byla k dispozici od Microsoftu na požádání, dokud ji Microsoft v únoru 2008 nevydal veˇrejnˇejako souˇcástjiž zmínˇenéOpen Specification Promise. Další dokumen- tace vznikly reverzním inženýrstvím. Pˇríponytˇechtosoubor ˚ubyly .ppt, .pps a .pot pro šablony.

17 4.2. OPENOFFICE.ORG

Od verze aplikace Microsoft Office PowerPoint 2007 je používán nový formát dle speci- fikace Office Open XML s pˇríponou .pptx, .ppsx a .potx.[63]

4.2 OpenOffice.org

Od verze 2.0 používá balík formáty soubor ˚u OASIS Open Document Format for Office Ap- plications (OASIS otevˇrenýformát dokumentu pro kanceláˇrskéaplikace, zkrácenˇe Open- Document, nebo ODF). Jedná se o otevˇrenýstandard pro kanceláˇrskéaplikace, jako jsou dokumenty textových a tabulkových procesor ˚u,prezentace, diagramy a další. OpenDocument je podstatou XML obsahující vedle svých vlastních XML-prvk ˚unapˇr. podmnožinu MathML pro matematické výrazy apod. Formát m ˚užebýt doplnˇeno další XML-jazyky. XML soubory jsou komprimovány a zabírají tak ménˇemísta. Zp ˚usobkompri- mace je obdobný jako u Java-archív ˚u(jar) – jedná se o Zip archív se speciálními záznamy v tomto archívu. Pˇríponasoubor ˚uale není .jar. Dle obsahu souboru m ˚užebýt napˇr.jednou z následujících: • .odt pro dokument aplikace Writer; • .ods pro dokument aplikace Calc; • .odp pro dokument aplikace Impress. Soubory lze tedy snadno rozbalit bˇežnýmkomprimaˇcnímnástrojem. Vlastní obsah doku- mentu (soubor content.) m ˚užetak být upravován v každém textovém editoru. Je velmi snadné dˇelatpˇrímov tˇechtosouborech programovˇeúpravy. Navíc je zaruˇceno,že budou data neomezenˇedostupná i po letech. V komerˇcníma úˇrednímnasazení je toto velká výhoda, kterou nelze opominout. Evropská unie plánuje standardnˇenasadit OASIS-formáty na uchovávání svých dokument ˚u. P ˚uvodnˇebyl formát vyvinut spoleˇcnostíSun, organizace OASIS specifikovala standard a v roce 2006 vydala jako mezinárodní normu ISO/IEC 26300. Pˇredverzí OpenOffice.org 2.0 používal balík sv ˚ujvlastní XML formát s pˇríponami .sx*, který je pˇredch˚udcemzmínˇenéhostandardu. Verze OpenOffice.org 1.1.5 jako první soubory standardu OASIS naˇcítala.Verze 2.0 a novˇejšínaˇcítajía ukládají všechny pˇredchozímifor- máty vˇcetnˇestarých StarOffice soubor ˚us pˇríponami .sd*.[58][57]

4.3 StarOffice

Tento balík primárnˇepoužívá soubory formátu OpenDocument jako svoje dokumenty, které jsou popsány výše u OpenOffice.org.

4.4 IBM Lotus Symphony

Balík IBM Lotus Symphony pˇrevzalod OpenOffice.org jádro, proto jsou také jeho ukládací formáty s OpenOffice.org pˇríbuzné.Podporuje tak formáty OpenDocument i starší formáty

18 4.5. KOFFICE

OpenOffice.org. Balík IBM Lotus Symphony na rozdíl od OpenOffice.org nenaˇcítáani neukládá formáty Office Open XML, také nepracuje s nˇekterýmiménˇed ˚uležitýmiformáty. [56]

4.5 KOffice

Tento balík používá primárnˇesoubory ve formátu OpenDocument, tedy stejné jako Open- Office.org, StarOffice i IBM Lotus Symphony, které jsou popsány výše u OpenOffice.org.

19 Kapitola 5 API kanceláˇrskýchbalík ˚u

API je zkratkou Application Programming Interface, ˇcesky Rozhraní pro programování apli- kací. Je to kolekce datových struktur, funkcí, tˇrída protokol ˚uposkytovaných knihovnami, programy nebo operaˇcnímsystémem. Tohoto rozhraní je užíváno pro stavbu aplikací nebo pro ovládání pˇríslušnéhoprogramu ˇcioperaˇcníhosystému. Samo rozhraní je ale chápáno jen jako rozhraní a jeho implementace (výkonný kód) je vˇecjiná. Rozhraní je popsáno nˇejakýmprogramovacím jazykem. Castoˇ m ˚užejít o jazyk vysoké úrovnˇe,kde není zamýšleno umožnit použití rozhraní z jiných programovacích jazyk ˚u.Roz- hraní m ˚užebýt postaveno nezávisle na programovacím jazyku (tedy, že m ˚užebýt funkci- onalita použita z více r ˚uznýchprogramovacích jazyk ˚u),což je d ˚uležité,pokud je zpˇrístup- ˇnovanáfunkcionalita napˇríkladslužba. To je umožnˇenonapˇríkladrozhraním vzdáleného volání procedur. Takový koncept ale s sebou m ˚uženést výkonové znevýhodnˇenípro lokální použití. [50] U kanceláˇrskýchbalík ˚uje použití jazykovˇenezávislého rozhraní velkou výhodou. Re-ˇ šení jednotlivých zkoumaných balík ˚ujsou r ˚uzná.

5.1 Microsoft Office

Souˇcástibalíku Microsoft Office je možné ovládat nˇekolikazp ˚usoby. Pro nás je podstatné použití API. Jiná možnost je skriptovacím jazykem Visual Basic for Applications vytváˇret novou funkcionalitu uvnitˇrbalíku (vývojové prostˇredíje jeho souˇcástí),nebo tímto jazykem skriptovat chování dokument ˚unebo šablon. Pro každou souˇcástbalíku je zveˇrejnˇenérozhraní API objektového modelu. Objektový model jednotlivých aplikací je, nutno dodat, navržen velmi neobjektovˇe.Programovací roz- hraní odpovídá standardu binárního komponentového rozhraní COM (Component Object Model).

5.1.1 Technologie COM

Technologii COM Microsoft zavedl v roce 1993. Jedná se binární komponentové rozhraní nízké úrovnˇe.Na systémech Windows umožˇnujemeziprocesouvou komunikaci a dynamic- kou tvorbu objekt ˚u.Komponenty COM jsou použitelné nezávisle na programovacím jazyku a mohou být jak v DLL knihovnách, tak souˇcástíaplikací. Každá COM-komponenta na- bízí rozhraní, pˇreskterým lze po úspˇešnéinicializaci pˇristupovatk nabízené funkcionalitˇe.

20 5.1. MICROSOFT OFFICE

Tímto má COM usnadnit znovupoužití již napsaných program ˚ua komponent a to i napˇríˇc operaˇcnímisystémy (prakticky ale jen napˇríˇcr ˚uznýmiverzemi Windows). Technologie COM je navržena na principu klient-server. Knihovna DLL nebo aplikace obsahující COM-komponenty poskytuje službu tvorby COM-objekt ˚una žádost klienta. [52]

5.1.2 .NET Framework a COM Interop

Technologie COM sice nabízí mnoho možností, je ale na dnešní dobu pomˇernˇesložitá na použití. Hlavním problémem je složitost a množství kódu, kterou je nutno vyjednat tvorbu COM-objektu, inicializace rozhraní apod. COM je celkovˇena ústupu platformˇe.NET Fra- mework. Jazyky .NET (pro .NET vytvoˇrenýjazyk C#, C++/CLI, Visual Basic .NET, JScript .NET, J#) s aplikacemi psanými pro rozhraní COM komunikují pomocí technologie COM In- terop. Ta automaticky vytváˇrík zaregistrovaným COM-server ˚um(knihovnám a aplikacím) jazykovou obálku, že je s COM objekty pracováno jako s ˇrízenýmiobjekty .NET. Hlavním zámˇerem je zde spolupráce s jazykem Visual Basic .NET. Spolupráce napˇr.s jazykem C# je obtížnˇejší– podobnˇejako jazyk C a Java nepodporuje pˇrivolání metod nepovinné para- metry, ˇcímžjsou volání bohatá na parametry nepˇríjemná.Stále je ale použití .NET a COM Interop pohodlnˇejší,než pˇrímáspolupráce s COM-objekty. [53][51]

5.1.3 Objektový model Microsoft Office Word

S aplikací Microsoft Office Word lze spolupracovat prostˇrednictvímkomplexních tˇríd,které názvem vystihují sv ˚ujvýznam. Tˇeminapˇríkladjsou: [48]

• Aplikace;

• Dokument;

• Rozsah (Range);

• Výbˇer(Selection);

• Kolekce Tabulek (Table Collection).

5.1.4 Objektový model Microsoft Office Excel

Tˇrídy, se kterými programátor pˇripráci s Microsoft Office Excel pracuje, jsou podobné ob- jekt ˚um,se kterými operuje uživatel pˇriruˇcnípráci s aplikací. Tˇemijsou: [10]

• Aplikace;

• Sešit;

• List;

21 5.2. OPENOFFICE.ORG

• Rozsah (Range);

• Buˇnka.

Každý z tˇechtoobjekt ˚unabízí množství metod, které odpovídají operacím a vlastnostem, které jsou uživateli známé z práce s aplikací.

5.1.5 Objektový model Microsoft Office PowerPoint

Pˇripráci s rozhraním aplikace Microsoft Office PowerPoint používáme klíˇcovétˇrídy, které známe z ruˇcnípráce s aplikací. Tˇemijsou: [40]

• Aplikace;

• Prezentace;

• Stránky prezentace;

• Tvar (Shape).

5.2 OpenOffice.org

Balík OpenOffice.org lze automatizovat nˇekolikazp ˚usoby:[34]

• Macro Recorder – nejjednodušší zp ˚usobpro tvorbu maker. Je možné spustit nahrávání makra v každé souˇcástibalíku OpenOffice.org a od té doby je zaznamenáno každé kliknutí a každý stisk klávesy ve skriptovacím jazyku balíku, jenž se jmenuje Open- Office.org Basic. Tímto zp ˚usobemlze ale jen automatizovat bˇežnépostupy a i zde jsme limitováni.

• OpenOffice.org Basic – velmi flexibilní skriptovací jazyk vytvoˇrenýpro potˇrebybalíku, kterým je možné automatizovat i složitˇejšíúkony. Není ale napˇríkladmožné komuni- kovat s jinými programovacími jazyky.

• OpenOffice.org Software Development Kit – pomocí API balíku m ˚uževývojáˇrbalík obohatit o další funkce, m ˚užeale také skrze SDK ovládat lokální nebo i vzdálenou instanci aplikace. Rozhraní aplikace odpovídá modelu Universal Network Objects (UNO). Smyslem tohoto modelu rozhraní je zaruˇceníinteroperability aplikace s li- bovolným programovacím jazykem, libovolnými objektovými modely a libovolnou platformou. UNO je klient-server systém a je nutno mezi klientem a serverem vytvoˇrit nejprve TCP/IP spojení. Tím je zcela jedno, zda je aplikace, která OpenOffice.org vyu- žívá, na stejném poˇcítaˇci,nebo na druhém konci svˇeta.Díky tomuto návrhu je možné pro práci s API OpenOffice.org použít jazyky StarOffice Basic, C, C++, Java, Phyton,

22 5.3. STAROFFICE

Delphi, .NET a mnoho dalších. Navíc jsou pro nˇekteréz tˇechtojazyk ˚uvytvoˇrenyoba- lové vrstvy pro UNO (napˇr.pro Javu, C++, Phyton a Tcl), což velmi zpˇrehledˇnujepráci s API v tˇechtojazycích. [46] Pro Javu a prostˇredíNetBeans je navíc také dostupný zásuvný modul OpenOffice.org API plugin, který výraznˇezjednodušuje vývoj rozšíˇrenípro OpenOffice.org v tomto prostˇredí.Obsahuje ˇctyˇrišablony pro typické projekty, které do projektu naˇctoupo- tˇrebnéknihovny a pˇrípadnˇedoplní i potˇrebnýinicializaˇcníkód. [30]

• Bean Scripting Framework – open-source JAVA knihovna, p ˚uvodnˇeod IBM, která umožˇnujepoužití skriptovacích jazyk ˚uuvnitˇrJava aplikací a používání Java objekt ˚u z nich. V kombinaci s Java UNO (Java-obalené UNO) je tak možné použít pro skripto- vání jazyky Python, Jython, Tcl, JRuby, Groovy a další. [4]

• Technologie COM – snad jen pro zajímavost registruje balík OpenOffice.org v pro- stˇredíMicrosoft Windows rozhraní COM pro práci s balíkem. Jedná se vlastnˇejen o most COM–UNO. Toto je užiteˇcnéjen pro ty, co jsou na rozhraní COM zvyklí, jinak je možné ze stejných jazyk ˚upoužít i UNO pˇrímo.[5]

• AutomateIT! – program, který zaregistruje objekty COM balíku Microsoft Office v pro- stˇredíMicrosoft Windows, ale volání pˇredávábalíku OpenOffice.org. Jen další zajíma- vost, jak automatizovat práci s OpenOffice.org. [2]

Navíc, jak již bylo zmínˇeno,umožˇnujebalík provoz bez uživatelského rozhraní, což je ide- ální pro použití balíku jako externího nástroje na komplexní úkony. [44]

5.3 StarOffice

Protože jsou stejné zdrojové soubory, je i API balíku stejné jako u OpenOffice.org.

5.4 IBM Lotus Symphony

Balík nabízí rozhraní API na dvou úrovních. Jedno je nízké úrovnˇea je pˇrevzatéz Open- Office.org, druhé je na úrovni uživatelského rozhraní postaveném na Eclipse Rich Client Platform. Zásuvné moduly tak mohou být postaveny pro objektový model dle specifikace UNO nebo pro platformu Eclipse. Pro ovládání aplikace, vˇcetnˇepˇrístupuna UNO API, je možné použít zabudovaný skrip- tovací jazyk LotusScript. [19] Pro export dat z aplikací bychom ale využili vˇecispoleˇcnés OpenOffice.org

5.5 KOffice

Kanceláˇrskýbalík KOffice je psaný v jazyce C++. Podporuje nˇekolikskriptovacích jazyk ˚u díky knihovnˇe Kross (jazyky Python, Ruby a KDE JavaScript). Ty jsou ale urˇcenépro in-

23 5.5. KOFFICE terní použití – použití uvnitˇraplikace, jako jsou makra a zásuvné moduly. Pomocí C++ lze samozˇrejmˇetaké tvoˇritzásuvné moduly (bez použití knihovny Kross). [17] Aplikace balíku podporují od verze 2.0 technologii D-Bus, která je urˇcenake komunikaci mezi aplikacemi v prostˇredíKDE 4 (v pˇredchozíchverzích KDE a KOffice byl používán systém DCOP). Touto cestou lze velmi snadno ovládat balík KOffice podobnˇejako další KDE aplikace. Balík tak lze snadno ovládat zvenˇcía použít jako nástroj pro tvorbu dokument ˚u. [8]

24 Kapitola 6 Externí knihovny pro práci s dokumenty

Kanceláˇrskébalíky jsou rozsáhlé aplikace s množstvím funkcí, které pˇriautomatizaci ex- portu dat v ˚ubecnepotˇrebujeme.Bylo by zároveˇnšpatné uživatele nutit mít právˇenáš ob- líbený balík nainstalovaný, pokud chce používat exportovací funkcionalitu našeho pro- gramu. S dokumenty kanceláˇrskýchbalík ˚ulze manipulovat i pomocí samostatných kni- hoven. Nˇekteréknihovny jsou zamˇeˇrenéna práci s dokumenty pˇresnéhotypu a jejich návrh odráží vnitˇrnístrukturu takových dokument ˚u.Jiné pˇrijímajíobsah a formu nezávisle na formátech, do kterých umí výsledek exportovat.

6.1 Apache POI

Zejména v dobˇe,kdy formáty Microsoft Office nebyly dobˇredokumentovány (pˇredzve- ˇrejnˇenímdokumentací v roce 2008) zaˇcalovznikat nˇekolikknihoven, které se více ˇciménˇe úspˇešnˇepokouší o podporu práce s tˇemitoformáty. Apache POI je projekt Apache Software Foundation, který vyvíjí knihovny pro práci se soubory Microsoft Office, p ˚uvodnˇebyl souˇcástíprojektu Jakarta Project. Tyto knihovny jsou psané ˇcistˇev Javˇea distribuovány pod licencí Apache License. Ta zdarma umožˇnujepoužití zdrojových kód ˚uk budování aplikací od svobodných po komerˇcní.[38] Název byl p ˚uvodnˇezkratkou Poor Obfuscation Implementation, ˇcesky Uboze imple- mentovaná obfuskace, vycházející z faktu, že formát je svým zp ˚usobemchaotický a složitý. Vývojáˇrivˇeˇrili,že je tomu tak za úˇcelemjeho ochrany. Pˇrípadnáochrana byla ovšem nedo- stateˇcná,nebot’ se formáty podaˇriloúspˇešnˇezdokumentovat zpˇetnýminženýrstvím – odtud název. Z marketingových d ˚uvod˚use nyní projekt k p ˚uvodnímuvýznamu zkratky nehlásí. [62] Apache POI pracuje se soubory Microsoft Office Word, Microsoft Office Excel i Microsoft Office PowerPoint a to zejména se staršími formáty z Microsoft Office 97 – 2003. Podpora nových formát ˚uOffice Open XML bude k dispozici ve verzi POI 3.5. Aktuální stabilní verze je POI 3.2-FINAL. Projekt se skládá z podprojekt ˚u,kde každý ˇrešíjinou ˇcástspektra problematiky formátu Microsoft Office. Zde jen nˇekteré:[38]

• POIFS (Poor Obfuscation Implementation File System, v ˇceskémpˇrekladu Souborový systém s uboze implementovanou obfuskací) – v rámci tohoto podprojektu je vyví-

25 6.2. EXCELPACKAGE

jen modul pro práci s formáty OLE 2 structured storage. Dokumenty zmínˇenýchˇcástí Microsoft Office staví na tomto formátu a tak je tento projekt využíván dalšími pod- projekty a je ho možno využít i na další OLE 2 structured storage formáty.

• HSSF (Horrible SpreadSheet Format, ˇcesky Odporný formát pracovních sešit ˚u) – tento formát je spoleˇcnˇes pˇredchozímv nejpokroˇcilejšífázi. Umožˇnujepráci s pracovními sešity Microsoft (Office) Excel 97 – 2003 (formát BIFF 8) s pˇríponou .xls.

• HPSF (Horrible Property Set Format, ˇcesky Odporný formát vlastností) – každý z pro- bíraných formát ˚uMicrosoft Office obsahuje ˇcást,která nese metadata dokumentu, jako autora, verzi apod.

• HWPF (Horrible Word Processor Format, ˇcesky Odporný formát textového procesoru) – tento modul je stále ve fázi vývoje, jeho úkolem je ˇcístsoubory Microsoft (Office) Word 97 – 2003 s pˇríponou .doc.

• HSLF (Horrible Slide Layout Format, ˇcesky Odporný formát rozložení pr ˚usvitek)– obdobnˇepro práci se soubory Microsoft (Office) PowerPoint 97 – 2003.

Knihovna pak poskytuje pro práci s jednotlivými dokumenty objektový zp ˚usobzacházení. Pro pˇríkladypoužití HSSF viz zdroj[39].

6.2 ExcelPackage

Excelpackage je knihovna, která umožˇnujesnadnou tvorbu soubor ˚uMicrosoft Office Ex- cel 2007 a manipulaci s nimi. Jejím primárním místem nasazení jsou dle vývojáˇr˚uservery. Na tˇechje totiž nejménˇepraktické mít spuštˇenouinstanci Microsoft Excel pro tvorbu doku- ment ˚u,pˇrípadnˇeje nepraktické mít pro tento úˇcelvyhrazený stroj. Ruˇcníobsluha formátu není žádnou zábavou, aˇcknihovny .NET Frameworku díky API Systém.IO.Packaging pod- porují snadnou práci s archívy dle Open Packaging Conventions i jazyk SpreadsheetML. Tato knihovna nabízí pˇrehlednýa velmi intuitivní objektový model dokumentu (pra- covního sešitu) a jeho podobjekt ˚us možností jakoukoli vlastnost ˇcísta nastavovat. Práce s pracovními sešity Microsoft Excel je s touto knihovnou doslova hraˇcka.Jen na nˇekolik ˇrádk˚ukódu je možné mít vyˇrešenýcelý export. Mimo tvorby nových dokument ˚uje možné ˇcístdata z existujících nebo je mˇenit.Nové dokumenty je možné tvoˇritdle šablony, ve které m ˚užebýt definován nejen vzhled, ale i funkcionalita pˇredem,ˇcímžjsme ušetˇrenizanášení funkcionality pracovního sešitu do kódu. Knihovna vyžaduje pˇrítomnostknihoven .NET Framework 3.0, a to právˇez d ˚uvoduvyu- žívání API Systém.IO.Packaging. .NET Framework 3.0 bohužel není souˇcástíimplementace Mono, takže je a ještˇenˇejakoudobu bude provozovatelná pouze na Microsoft Windows. Firma Novell vyvíjející Mono podporu .NET Frameworku 3.0 zatím neplánuje[20]. S pˇrípad- ným použitím jiné knihovny pro práci s archívy (napˇr. DotNetZip) se zatím také nepoˇcítá. [11]

26 6.3. ODF TOOLKIT

6.3 ODF Toolkit

ODF Toolkit shromažd’uje knihovny (projekty) usnadˇnujícívývoj aplikací podporující stan- dard ODF. Obsahuje malé pomocné nástroje na jednoduché operace s ODF, ale i ODF validá- tor a Java a .NET knihovny pro práci s ODF pro použití v jiných projektech. Tyto knihovny nesou názvy ODFDOM a AODL. ODFDOM je knihovna, která umožˇnujejednoduchou manipulaci s ODF soubory i bez znalosti specifikace formátu. Knihovna je rozdˇelenádo vrstev, z toho tˇrídypˇrímosouvisející se specifikací ODF jsou generovány z RelaxNG schématu. ODFDOM je spíše specifikace ar- chitektury knihovny, jejíž první implementací je ODFDOM Java. Bylo p ˚uvodnímzámˇerem umožnit mnoho dalších implementací v jiných objektovˇeorientovaných jazycích. O imple- mentaci .NET se jedná. AODL je knihovna napsaná ˇcistˇev jazyku C#. Protože nemá žádné závislosti na knihov- nách Microsoft Windows, m ˚užebýt provozována napˇr.na poˇcítaˇcíchs Linuxem v bˇehovým prostˇredímMono. Hlavním rozdílem oproti ODFDOM je, že je mnoho funkcionality AODL napsáno ruˇcnˇeoproti generovaným vrstvám ODFDOM. ODFDOM tak respektuje RelaxNG schéma ODF do poslední vlastnosti, zatímco AODL je pˇrizp˚usobenévíce snadnému použití. [33]

6.4 JasperReports

JasperReports není, na rozdíl od pˇredchozíchknihoven, knihovnou pro manipulaci s doku- menty konkrétních formát ˚u.Jedná se o open-source reportovací knihovnu (vytváˇríreporty – zprávy) psanou v Javˇe,kterou je možno zabudovat do aplikací, a která usnadní tvorbu vzhledovˇevyspˇelýchreport ˚ubez velkého úsilí. Pomocí speciálního XML jazyka JRXML je zhotovena šablona, která definuje vzhled vý- sledné zprávy. Tu lze vytvoˇritexterními vizuálními nástroji, jako je napˇríklad iReport, nebo sestavit ruˇcnˇe.Knihovna za pomoci této šablony zpracovává data z r ˚uznýchzdroj ˚u,napˇr. pˇrímoz aplikace, která knihovnu používá, nebo z relaˇcnídatabáze, JavaBeans (EJB, Hiber- nate), plain old Java objects (POJO) nabo datových XML zdroj ˚u.Knihovnu lze rozšiˇrovat, aby zpracovávala i další zdroje. Výstup pak knihovna m ˚užebud’to zobrazit na obrazovce, tisknout, nebo exportovalo široké škály r ˚uznýchformát ˚u,jako PDF, HTML, XLS, CSV, RTF, prostý text nebo XML. Reportovacích nástroj ˚uje sice k dispozici více, ale právˇeJReports umožˇnujeexport do formát ˚ukanceláˇrskýchbalík ˚u(XLS, RTF, CSV. . . ), je rozšíˇrenýa je podporován velkou ko- munitou. [55]

27 Kapitola 7 Analýza a popis možností exportu dat do formát ˚ukanceláˇrskýchba- lík ˚u

Možností exportu dat z aplikací do r ˚uznýchformát ˚udokument ˚ukanceláˇrskýchbalík ˚u,jak bylo zdokumentováno pˇredchozímikapitolami, se nabízí celá ˇrada.Projdeme a srovnáme nejen tyto možnosti a zhodnotíme jejich použitelnost pro r ˚uznéscénáˇrepoužití.

7.1 Ruˇcnípráce se soubory

Se soubory m ˚užemez programu pˇrímopracovat pomocí vstupnˇevýstupních operací kni- hoven programovacího jazyka, pˇrípadnˇeještˇes pomocí dalších knihoven, napˇr.knihoven pro práci s XML nebo Zip. Samozˇrejmˇezáleží na tom, co s dokumenty zamýšlíme. Budeme chtít soubory ˇcíst,za- pisovat do nich, nebo je mˇenit?Nˇekteréformáty mohou být snadné na zápis, ale složité na ˇcteníz d ˚uvod˚urozsahu možností formátu. U binárních soubor ˚ubychom museli ˇrešitpro- blémy nízké úrovnˇe,jako poˇradía zarovnání bajt ˚uve vˇetšíchdatových typech. U textových soubor ˚utoto sice odpadá, ale mˇejmena pamˇetir ˚uznákódování. Pokud budeme chtít v textovém souboru (vˇc.XML soubor ˚u)pouze nahrazovat nˇejaká klíˇcováslova hodnotami, nebudeme pravdˇepodobnˇemuset vˇedˇettémˇeˇrnic o jeho struktuˇre. Opˇetsi ale musíme dát pozor na nutnost úpravy znak ˚udo pˇríslušnéhokódování, pˇrípadnˇe na tvorbu escape-sekvencí ze znak ˚umimo kódování a vyhnout se použití znak ˚u,které mají pro formát speciální význam (napˇr.zpˇetnélomítko v RTF, ostré závorky v XML), nebo je nahradit. Takto m ˚užemevzít hotový dokument, který je podstatou textový a obsahuje naše speciální klíˇcová slova v textu, a klíˇcováslova nahrazovat hodnotami, a to jak u textového procesoru, tabulkového procesoru, tak prezentace. Naˇcítánísouboru nespadá do rámce této práce. V každém pˇrípadˇeby se pro aplikaci pravdˇepodobnˇenamísto složitého formátu dokumentu jako zdroje informací oˇcekávalspe- ciální XML formát obsahující ˇcistˇeobsah a nikoli formu nebo jiný jednoduchý textový for- mát. Ze zde jmenovaných formát ˚uje pro pˇríménaˇcítánívhodný napˇríkladCSV[6]. Zhodnotíme nyní možnosti pˇríméhozápisu nebo zmˇendokument ˚ujednotlivých jmeno- vaných formát ˚u:

• Formáty Office Open XML, tedy dokumenty balíku Microsoft Office 2007 a Microsoft Office 2008 pro poˇcítaˇceMacintosh aplikací Microsoft Office Word, Microsoft Office

28 7.2. POUŽITÍ API KANCELÁRSKÝCHBALÍKˇ U˚

Excel i Microsoft Office PowerPoint, jsou na ruˇcnízpracování složité. I s použitím XML nástroj ˚uje jejich schéma nepˇrehlednéa manipulaci s nimi nemohu doporuˇcit.[59]

• Formáty stavené na OLE 2.0 structured storage, tedy starší formát dokument ˚uMicro- soft Office, jsou komplikované natolik, že je nesmysl se o jejich dekódování ruˇcnˇepo- koušet. Ani podrobná dokumentace vydaná v rámci Open Specification Promise na tomto faktu nic nezmˇení.[67]

• Formát RTF je dostateˇcnˇejednoduchý, aby bylo možné textové zprávy (reporty) tvo- ˇritpˇrímov programu bez použití pomocných knihoven. Jednoduše by bylo možné i pˇrevzítsoubor tohoto formátu jako šablonu a na místo vyznaˇcenéklíˇcovýmslovem zprávu vložit. Šablona by definovala použitá písma, pˇrípadnˇeobsahovala hlaviˇcku dokumentu apod. U vloženého textu je samozˇrejmˇenutno ošetˇritnahrazení znak ˚u mimo základní ASCII escape-sekvencemi. [28]

• Formáty OpenDocument jsou sice vstˇrícnˇejšík pˇríméúpravˇe,než formáty Office Open XML, stále je jejich schéma natolik složité, že se vyplatí sáhnout po zdarma šíˇrených knihovnách pro manipulaci s tˇemitoformáty, jako je ODF Toolkit. [57]

• Formát CSV je dobrým pˇríklademtextového formátu, který je šitý na míru ruˇcnímu naˇcítání.Jak již název napovídá, obsahuje hodnoty oddˇelenéˇcárkami.Protože v ˇceš- tinˇepoužíváme ˇcárkujako oddˇelovaˇcdesetinných míst, existují varianty používající pro oddˇeleníbunˇekstˇredníknebo tabulátor. Historie tohoto formátu sahá až po dˇerné štítky, ne-li dál. [6]

7.2 Použití API kanceláˇrskýchbalík ˚u

Použití kanceláˇrskéhobalíku jako nástroje pro úpravu dokument ˚us sebou nese hned nˇeko- lik nevýhod:

• Kanceláˇrskýbalík je rozsáhlá, pamˇet’ovˇei výpoˇcetnˇenároˇcnáaplikace. Její použití jako nástroje s tím musí poˇcítat.Pro pˇríležitostnépoužití toto není takový problém, ale pˇri pravidelném používání nám dlouhý ˇcasspouštˇeníbalíku nebo zabraná pamˇet’, pokud jej necháváme bˇežet,bude pˇrekážet.

• Ne každý kanceláˇrskýbalík je dostupný zdarma. Pokud máme balík již nainstalovaný na stroji nasazení a nezamýšlíme naši aplikaci šíˇritna další stroje, nemusíme se tímto zabývat. V opaˇcnémpˇrípadˇeje to významný parametr.

• Kanceláˇrskébalíky jsou primárnˇeGUI aplikace. To jednak znaˇcnˇepˇrispívák jejich nároˇcnostina výpoˇcetnízdroje, ale zejména se v nestandardních situacích taková apli- kace ptá uživatele, jak dál. To se samozˇrejmˇenehodí, pokud má být export automati- zovaný bez pˇrítomnostiobsluhy. Pˇríklademm ˚užebýt zapomenutý zámek na souboru,

29 7.3. POUŽITÍ EXTERNÍCH KNIHOVEN PRO PRÁCI S DOKUMENTY

kdy se pˇreduložením tohoto souboru balík ptá uživatele, zda chce zamˇcenýsoubor pˇrestopˇrepsat,nebo ˇcekat.Výhodou nˇekterýchbalík ˚uje, že jsou pˇrizp˚usobenytomuto použití (serverový mód OpenOffice.org[44]).

• Rozhraní balík ˚um ˚užebýt špatnˇedokumentované. To samozˇrejmˇenemusí platit pro každý balík obecnˇe.Je nutné si uvˇedomit,že toto není primární použití kanceláˇrského balíku a že nemusí být na dokumentaci takovýchto funkcí kladen d ˚uraz.O to h ˚uˇr, pokud balík není open-source. V kombinaci se špatnou dokumentací jdeme pˇripro- gramování cestou pokus – omyl.

Pˇresuvedené nevýhody byl (je) pro nˇekteréformáty tento pˇrístupjediným možným. Za pˇríkladdejme export do formátu Microsoft (Office) Excel 97 – 2003. Bˇežnoupraxí bývá mít vedle serveru vyhrazený obyˇcejnýpoˇcítaˇcnebo jiný server s bˇežícíinstancí Microsoft Office Excel, který soubory zpracovává a hlavnímu serveru pˇredává.Tento poˇcítaˇcje potˇrebaobˇcas restartovat, napˇr.jednou do tˇrítýdn ˚u.Je to stále lepší, než mít nutnost restartovat samotný server. [12] Je zajímavé srovnat r ˚uznépˇrístupyk návrhu kanceláˇrskýchbalík ˚ur ˚uznýchkolektiv ˚u autor ˚u.Struˇcnˇebylo popsáno použití r ˚uznýchtechnologií pro komunikaci s kanceláˇrskými balíky, které vychází z prostˇredínasazení tˇechtoaplikací, zejména r ˚uznýchnávrh ˚ukom- ponentových rozhraní, které tato prostˇredípodporují. Tyto okolnosti mají velký vliv na možnosti nasazení balík ˚ujako nástroj ˚upro tvorbu dokument ˚u.Bohužel není v této práci dostatek prostoru pro podrobnˇejšízkoumání tˇechtotechnologií.

7.3 Použití externích knihoven pro práci s dokumenty

Nejlepším zp ˚usobem,jak pracovat s formáty dokument ˚ukanceláˇrskýchbalík ˚u,je využít knihoven k tomu urˇceným.Nˇekterépˇresnˇeimplementují formát dle jeho veˇrejnéspecifi- kace, jiné vznikly zpˇetnýminženýrstvím a nemusí tak podporovat každý aspekt formátu. Knihovny mohou nabízet ovládání veškerých možností formátu a tak být k použití slo- žitˇejší.Jiné jsou jednoduché a snadno a rychle použitelné pro bˇežnéúkony. Projdeme možnosti použití knihoven v poˇradídle vhodnosti pro r ˚uznétypy dokument ˚u.

7.3.1 Dokumenty textových procesor ˚u

Pro dokumenty textových procesor ˚ujsou ze jmenovaných knihoven vhodné ODF Toolkit a ˇcásteˇcnˇetaké Apache POI a JasperReports.

• ODF Toolkit nabízí nástroje pro práci se všemi typy dokument ˚uODF. Pokud nemáme vážné d ˚uvodypoužít jeden z formát ˚uMicrosoft Office (nátlak okolí), je práce s ODF Toolkitem a soubory ODF s pˇríponou .odt nejsnazší cestou. [33]

• Apache POI je dobˇrepoužitelný k práci se soubory tabulkového procesoru Microsoft (Office) Excel 97 – 2003, ale modul zpracovávající dokumenty Microsoft (Office) Word

30 7.3. POUŽITÍ EXTERNÍCH KNIHOVEN PRO PRÁCI S DOKUMENTY

97 – 2003 je dle autor ˚uv raném stádiu a není pro nedostatek kapacit souˇcasnˇedále vyvíjen. [38]

• Pro JasperReports je možné zhotovit šablonu pro export do formátu RTF. Formát je to sice po stránce DTP velmi omezený (není stavˇenna rámcích jako jiné), ale pokud nelpíme na složitém rozložení textu na stránce, splní sv ˚ujúˇcel.[55]

7.3.2 Dokumenty tabulkových procesor ˚u

Pro dokumenty tabulkových procesor ˚ujsou ze jmenovaných knihoven vhodné ExcelPac- kage, ODF Toolkit, Apache POI i JasperReports.

• ExcelPackage je velmi snadno použitelná .NET knihovna pro tvorbu sešit ˚uMicrosoft Office Excel 2007 (Office Open XML). Pokud je tento formát pro váš výstup vyhovující, není snazší cesty. [11]

• ODF Toolkit nabízí nástroje i pro práci s ODF soubory s pˇríponou .ods. Je složitˇejší k použití, protože nabízí tolik možností jako formát samotný. [33]

• Apache POI je po stránce práce se soubory Microsoft (Office) Excel 97 – 2003 dobˇre použitelná knihovna. Rozhraní (podprojekt HSSF) je psané ˇcistˇev Javˇe.[38]

• Pro JasperReports je možné zhotovit šablonu pro výstup do formátu Microsoft (Office) Excel 97 – 2003 nebo CSV. Možnosti pˇrebíratdata z r ˚uznýchzdroj ˚utento nástroj ˇciní velmi použitelným. [55]

7.3.3 Dokumenty prezentaˇcníhoprogramu

Pro dokumenty prezentaˇcníhoprogramu jsou ze jmenovaných knihoven vhodné ODF Tool- kit a ˇcásteˇcnˇe Apache POI.

• ODF Toolkit nabízí nástroje i pro práci s ODF soubory s pˇríponou .odp. Podprojekt ODFDOM implementuje kompletnˇevšechny vlastnosti dané schématem OpenDocu- ment. Stejnˇejako s ostatními typy dokument ˚uje možné pracovat i s prezentacemi. [33]

• Podprojekt Apache POI HSLF je Java implementace formátu dokument ˚uMicrosoft (Office) PowerPoint 97 – 2003. Je ale stále ve fázi rozpracování. [38]

31 7.4. POUŽITÍ XSL PRO PREVODXMLSOUBORˇ U˚ DO FORMÁTUDOKUMENT˚ U˚

7.4 Použití XSL pro pˇrevodXML soubor ˚udo formát ˚udokument ˚u

K exportu dat z aplikací do kanceláˇrskýchbalík ˚ulze využít technologie XSL (eXtensible Stylesheet Language, ˇcesky rozšiˇritelnýjazyk styl ˚u). Podmínkou je, aby aplikace exporto- vala svá data do formátu XML. Potom je možné pomocí jazyka XSL a procesoru (aplikace, která provádí transformaci na základˇespecifikace v šablonˇeXSL) data transformovat do - tových nebo XML formát ˚u.Pokud ještˇepˇripustímepost-processing ve formˇekomprimace více takových soubor ˚udo jednoho Zip archívu, m ˚uževýstupem být i ODF nebo OOXML. Problém zde je, že pˇrípadnéXSL soubory mohou být složité na vytvoˇrení.Prakticky se práce m ˚užepodobat ruˇcnímuzpracovávání formátu. [71]

7.5 Shrnutí analýzy

Jaké prostˇredkynakonec pro ˇrešenínˇejakéhoproblému použijeme, záleží nejvíce na okol- nostech a ˇrešenémproblému. Je nutno si položit následující otázky:

• Jaký výstupní formát je pro ˇrešenípˇrípustný?

• Jaká je platforma, kde bude ˇrešenínasazeno?

• Kde bude ˇrešenípoužíváno – jaké pˇripadajív úvahu licence použitých knihoven?

• Jaké programovací jazyky dobˇreovládáme? (Jsme pˇrípadnˇeochotni se kv ˚uliˇrešení uˇcitnˇejakýnový?)

• Jaký potˇrebujemevýkon – je pˇrípustnévyužít samotný balík pro vyhotovení exporto- vaných dokument ˚u?

• Bude export probíhat za zavˇrenýmidveˇrmiv serverovnˇenebo bude pˇrítomnáobsluha – uživatel?

Pokud je formát jednoduchý, že je pˇribližnˇestejnˇesložité s ním zacházet pˇrímo,jako použít externí knihovnu, nic nebrání ruˇcníimplementaci. Toto pˇripadáv úvahu zejména pro for- máty CSV a RTF, dále pro formáty, které jsou podstatou textové, pokud jde jen o jednoduché nahrazování klíˇc˚uhodnotami. Pokud je formát binární, nebo složitý a je tˇrebadˇelatvíce, než jen nahrazování klíˇce hodnotami, je asi nejlepší sáhnout po externí knihovnˇe,pokud je pro daný formát vyhovující knihovna dostupná. Nˇekdyje možné si vybrat z více r ˚uznýchknihoven. Pak volíme dle nabízených možností – nˇekteréjsou jednoduché k použití, jiné nabízí více možností práce s dokumentem. Musíme ale zvážit, zda licence tˇechtoknihoven vyhovují našim potˇrebám. V dalších pˇrípadechje možné použít rozhraní balíku. Musíme se spokojit s tím, že ba- lík bud’to trvale pobˇeží,nebo jej budeme muset spouštˇet.Obojí je nepˇríjemné.Pro nˇekteré pˇrípadyale není jiná možnost. I zde musíme brát ohled na licenci vybíraného balíku.

32 Kapitola 8 Popis implementací

8.1 Vkládání r ˚uznýchdat do dokument ˚uMicrosoft Office

Zadání tohoto pˇríkladuvychází z potˇrebhypotetického zákazníka. Na obyˇcejnýchkonzumních noteboocích je nainstalovaná aplikace, která vypoˇcítáváná- klady svých klient ˚u,analyzuje je a navrhuje r ˚uznéoptimalizace. Výsledné srovnání stavu pˇredoptimalizací a po ní nabízí pˇrímov rámci svého uživatelského rozhraní. Tuto aplikaci chce hypotetický zákazník rozšíˇrito možnost exportu výsledného srovnání do dokument ˚u Microsoft Office s použitím šablon, které mohou mít libovolný obsah. Zákazník chce expor- tovat do formát ˚uMicrosoft Office Word 2003, Microsoft Office PowerPoint 2003 i Microsoft Office Excel 2003. Implementací je knihovna, která za pomoci lokálnˇebˇežícíinstance Microsoft Office (r ˚uz- ných ˇcástí)umožˇnuje:

• doplˇnovánítextu – hodnot;

• vyplˇnovánítabulek – vkládání ˇrádk˚u;

• vkládání graf ˚uz šablony Microsoft Office Excel 2003.

Cílová šablona je libovolný dokument Microsoft Office Word, Microsoft Office Excel nebo Microsoft Office PowerPoint. Místa v šablonˇe,která budou zpracována, jsou oznaˇcenaklíˇcovýmslovem, tedy textovˇe. Microsoft Office Word sice m ˚užepro tento úˇcelpoužívat úhlednˇejšízáložky, ale nepoužívá je napˇr.Microsoft Office PowerPoint, a tak byly textové ˇretˇezcezvoleny jako spoleˇcnácesta pro všechny typy dokument ˚u. Tˇrídytéto knihovny ilustruje diagram tˇrídna obrázku 8.1. Knihovna poskytuje tovární tˇrídu OfficeDocumentFactory, která otevírá a tvoˇríobecné dokumenty Microsoft Office, se kterými je zacházeno skrze rozhraní IOfficeDocument. To- vární tˇrídapod tímto rozhraním vrací jednu z implementací WordDocument, ExcelDocu- ment nebo PowerPointDocument dle toho, jaký soubor otevírá, nebo jaká je pˇríponasou- boru, který je tvoˇren. Rozhraní IOfficeDocument nabízí všechnu funkcionalitu popsanou výše (doplˇnování textu, vyplˇnovánítabulek, vkládání graf ˚u).Je tak dosaženo transparence práce s dokumenty r ˚uznýchaplikací.

33 8.2. KONVERZE HTML NA FORMÁT MICROSOFT OFFICE WORD 2003

Obrázek 8.1: Diagram tˇríd

Další tˇrídyjsou BufferedExcelReader, která slouží hromadnému ˇctenídat z rozsáhlých dokument ˚uMicrosoft Office Excel, a tˇrída ExcelWriter pro jednoduché vyplˇnováníbunˇek sešit ˚uMicrosoft Office Excel. Zdrojové soubory aplikace jsou pˇriloženyv adresáˇri OfficeUtil na pˇriloženémCD.

8.2 Konverze HTML na formát Microsoft Office Word 2003

Zadání tohoto pˇríkladuvychází z potˇrebhypotetického zákazníka. Na firemním serveru bˇeží Confluence – Podniková Wiki od firmy Atlassian. Obsahem této Wiki jsou dokumentace urˇcenéklient ˚um.Ty je možné exportovat do r ˚uznýchformát ˚u (napˇr.PDF, HTML). Zadáním je vytvoˇritprogram, který pˇrevededostupná data na doku- ment Microsoft Office Word 2003 a souˇcasnˇebude respektovat nˇejakoušablonu, zadanou dalším dokumentem Microsoft Office Word 2003. Implementace využívá HTML exportu Confluence a lokálnˇebˇežícíinstance Microsoft Office Word 2007, ve které dle šablony vytvoˇrídokument, který vyplní dle obsažených klí- ˇcovýchslov. Speciální klíˇcovéslovo potom oznaˇcujemísto, na které má být vložen obsah HTML dokumentu. Microsoft Office Word 2007 je možné do jisté míry použít jako HTML editor, a tak HTML export pˇrirozenˇeotevˇre.Respektuje pˇritom styly definované v odkazovaném CSS souboru. Souˇcasnˇeje otevˇrenašablona, ve které jsou, obdobnˇejako v pˇredchozíimplementaci, nahra- zena klíˇcováslova hodnotami a na místo oznaˇcenéspeciálním klíˇcovýmslovem je vložen obsah otevˇrenéhoHTML dokumentu. HTML export ale obsahuje informace, které souˇcástívýsledného dokumentu být nemají. Napˇríkladobsahuje v patiˇcceinformace o verzi Confluence nebo tabulku obsahu v úvodu.

34 8.2. KONVERZE HTML NA FORMÁT MICROSOFT OFFICE WORD 2003

Tyto a podobné informace jsou pˇredvložením HTML dokumentu odstranˇeny. Hodnoty pro nahrazení nˇekterýchklíˇcovýchslov jsou odvozeny z obsahu HTML ex- portu (Autor, datum úpravy apod.). Obsluha aplikace je provádˇenapomocí Windows Forms aplikace. Ta mimo výbˇeru vstup- ních dat z Confluence, výbˇeru šablony a výbˇeru cílového adresáˇreumožˇnujedefinování dodateˇcnýchnebo náhradních hodnot pro klíˇcováslova. Vzhled aplikace a její možný výstup ilustruje obrázek 8.2.

Obrázek 8.2: Aplikace a její možný výstup

Aplikace je pˇriloženáv adresáˇri ConfWordConvert na pˇriloženémCD. Souˇcástíadre- sáˇrejsou:

• zdrojové soubory ˇrešenía projektu (Visual Studio 2008 Pro, psáno v jazyku C#);

• zkompilované binární soubory (pro bˇehje tˇreba.NET Framework 2.0);

35 8.3. FAKTURA V MICROSOFT OFFICE EXCEL 2007

• šablona technické dokumentace (soubor sablona.doc v podadresáˇri Template).

Aplikace je internˇerozdˇelenána moduly, které tvoˇrílogické vrstvy nebo oddˇelujínástroje:

• WordWriter je GUI aplikace využívající (pˇrímonebo zprostˇredkovanˇe)ostatní pod- projekty;

• ApiWayLib je knihovna úzce spolupracující s aplikací Microsoft Office Word;

• SharpZipLib[45] je open-source knihovna pro práci s r ˚uznýmiarchivy, šíˇrenápod li- cencí GPL;

• TempUnZipper je nástroj pro práci s doˇcasnýmisoubory.

8.3 Faktura v Microsoft Office Excel 2007

Zadání tohoto pˇríkladubylo zvoleno pro zpestˇrenía tematické doplnˇeníkapitoly. Aplikace prodejny potˇrebujezákazník ˚umdávat faktury ve formátu Microsoft Office Ex- cel 2007, které respektují firemní šablonu. Šablona definuje vzhled a výpoˇcetnívzorce faktury. Na pˇredemznámá místa jsou dopl- ˇnoványhodnoty. V pˇrípadˇe,že má faktura více položek, než je místa v šablonˇe,jsou pˇridány potˇrebnéˇrádky. K tomu je použita knihovna ExcelPackage[11]. Implementovaná aplikace je jednoduchá Windows Forms aplikace, která nabízí k vypl- nˇenítextová pole s informacemi o zákazníkovi a tabulku se zbožím. Po stisknutí tlaˇcítka Fakturu! je zobrazen ukládací dialog a faktura uložena. Vzhled aplikace a její možný výstup ilustruje obrázek 8.3. Aplikace je pˇriloženáv adresáˇri Faktura na pˇriloženémCD. Souˇcástíadresáˇrejsou:

• zdrojové soubory ˇrešenía projektu (Visual Studio 2008 Pro, psáno v jazyku C#);

• zkompilované binární soubory (pro bˇehje tˇreba.NET Framework 3.0);

• šablona faktury (soubor sablona.xlsx v podadresáˇridata).

Faktura byla pˇrevzataz repositáˇreveˇrejnýchvzor ˚uúˇredníchdokument ˚uMicrosoft[26].

36 8.3. FAKTURA V MICROSOFT OFFICE EXCEL 2007

Obrázek 8.3: Aplikace a její možný výstup

37 Kapitola 9 Závˇer

Cílem diplomové práce bylo seznámit ˇctenáˇres možnostmi exportu dat z aplikací do for- mát ˚unejrozšíˇrenˇejšíchkanceláˇrskýchbalík ˚u. Za tímto úˇcelembyl, po seznámení ˇctenáˇrese základními pojmy, typy kanceláˇrských balík ˚ua jejich klíˇcovými ˇcástmi,sestaven seznam pˇetidnes velmi rozšíˇrenýchkanceláˇr- ských balík ˚u.Každý z tˇechtobalík ˚ubyl, po pˇredstavenía uvedení jeho historie, rozebrán po stránce programovacího rozhraní aplikace (API) a formátu soubor ˚u,které pˇrednostnˇe používá. R ˚uznéformáty soubor ˚ubyly probrány více dopodrobna, pˇrípadnˇei technologie, na kterých staví. Dále se práce zabývala externími knihovnami (stojící mimo uvedené ba- líky) pro práci s formáty jejich dokument ˚u.V ˇcásti Analýza a popis možností exportu dat do formát ˚ukanceláˇrskýchbalík ˚u byly pˇredešléa další poznatky vyhodnoceny po stránce vhodnosti k praktickému použití pro export dat do formát ˚ukanceláˇrskýchbalík ˚u.Pro r ˚uzné okolnosti byla navržena r ˚uznáˇrešení.V praktické ˇcástibyly popsány implementované de- monstraˇcnípˇríklady, které pokrývají jak dokumenty textových a tabulkových procesor ˚u,tak prezentace. Práce nabízí povrchní srovnání r ˚uznýchpˇrístup˚uk návrhu rozhraní kanceláˇr- ských balík ˚u.Struˇcnˇebylo popsáno použití r ˚uznýchtechnologií pro komunikaci mezi apli- kacemi, které vychází z prostˇredínasazení tˇechtoaplikací, zejména r ˚uznýchnávrh ˚ukompo- nentových rozhraní, které tato prostˇredípodporují. Použití programovacího rozhraní balíku Microsoft Office bylo demonstrováno na dvou pˇríkladech.V neposlední ˇradˇenabízí práce pˇrehledzajímavých knihoven pro tvorbu a manipulaci s dokumenty kanceláˇrskýchbalík ˚u a pˇríkladypoužití nˇekterýchz nich. Podrobnˇejšízkoumání komponentových rozhraní a obecnˇer ˚uznýchnávrh ˚upro komuni- kaci mezi programy v r ˚uznýchprostˇredíchm ˚užebýt pˇredmˇetemdalšího zkoumání. Jiným pokraˇcovánímby mohl být podrobnˇejšívýzkum a vývoj nástroj ˚upro pˇrevoddat do for- mát ˚ukanceláˇrskýchbalík ˚upomocí XSL transformací a dalších technologií spojených s XSL, kterým tu nebyl vˇenovándostateˇcnýprostor. V neposlední ˇradˇeby se další práce mohla vˇenovatpodrobnostem rozšíˇrenéhoformátu ODF a vzestupujícího formátu UOF a jejich podrobnému srovnání.

38 Literatura

[1] Zisman, A.: Ami Pro 3.0, Our Computer Player,

[2] AutomateIT!, SourceForge, , 2009-01-29. 5.2

[3] Baradaran, H.: OpenOffice.org vs. StarOffice vs. MS Office, , 2007-11-13. 3.3

[4] Bean Scripting Framework, The Apache Jakarta Project, , 2009-05-23. 5.2

[5] MS Office Object Model (COM) to OO Object Model mapping, The Open- Office.org Forum, , 2005-06-26. 5.2

[6] Comma-separated values, Wikipedia, The Free Encyclopedia, , 2009-05-20. 2.4.2, 7.1

[7] Dalheimer, K.: KDE: The Highway Ahead, Linux Journal, , 1999-02-01. 3.5

[8] D-Bus, Wikipedia, The Free Encyclopedia, , 2009-05-21. 5.5

[9] Office Suites, The Open Directory Project, , 2009-05-23. 3

[10] Excel Object Model Reference, Microsoft Corporation, , 2009-05-23. 5.1.4

[11] Tunnicliffe, J.: ExcelPackage: Office Open XML Format file creation, CodePlex Open Source Community, , 2007-01-25. 6.2, 7.3.2, 8.3

[12] Tunnicliffe, J.: Why create Excel spreadsheets on the server?, CodePlex Open Source Community, , 2007-01-03. 7.2

[13] Publication of ISO/IEC 29500:2008, Information technology - Document description and processing languages - Office Open XML file formats, International Organization for Standardization, , 2008-11-18. 4.1.1

39 [14] Jelliffe, R.: Why China’s UOF is good, Opinion, 2006-12-11, . 3.1.1, 2

[15] Riddell, J.: KOffice 2.0 Beta 6 Released, , 2009-02-15. 3.5

[16] The KOffice Project - Information, , 2009-05- 22. 2.2, 3.5

[17] KWord Scripting, KDE TechBase, , 2009-04-20. 5.5

[18] Lai, E.: IBM’s Symphony Hitting Wrong Notes, Reviewers Say, Computerworld, , 2007-09-24. 3.4

[19] Lotus Symphony provides a tiered API model and Eclipse plug-in support for the most flexibility, IBM Lotus Symphony, 2009-05-24, . 5.4

[20] Mono Project Roadmap, Wikipedia, The Free Encyclopedia, , 2009-03-01. 6.2

[21] Microsoft Office Binary (doc, xls, ppt) File Formats, Microsoft Corporation, , 2008- 02-15. 4.1.2

[22] Microsoft Corporation, .: Compare the 2007 Microsoft Office suites, 2009-05-23, . 3.1

[23] Microsoft Expands List of Formats Supported in Microsoft Office, Microsoft Cor- poration, 2008-05-21, . 4.1.1

[24] Jak extrahovat informace ze soubor ˚usystému Office pomocí formát ˚usoubor ˚ua sché- mat, Microsoft Corporation, , 2008-04-14. 4.1.1, 4.1.5

[25] History of Microsoft, Microsoft Corporation, 2009-05-23, . 3.1

[26] Faktury, Microsoft Office Online, . 8.3

40 [27] Microsoft Open Specification Promise, Microsoft Corporation, , 2006-09-12. 4.1.2

[28] Word 2007: Rich Text Format (RTF) Specification, version 1.9.1, Microsoft Corporation, , 2008-03-20. 4.1.3, 7.1

[29] UOF Translator, SourceForge, 2009-05-23, . 3.1.1

[30] OpenOffice NetBeans Integration, OpenOffice.org, , 2008-10-14. 5.2

[31] New, W.: Open Source, Standards Get A Boost In China, Intellectual Property Watch, 2007-04-24, . 3.1.1

[32] COMPANY NEWS; Microsoft Buys Software Unit, The New York Ti- mes, 1987-07-31, . 3.1

[33] Sieger, N.: What is ODF Toolkit, ODF Toolkit, , 2009- 02-10. 6.3, 7.3.1, 7.3.2, 7.3.3

[34] The OpenOffice.org Documentation Project Wiki, OpenOffice.org, , 2009-05-02. 5.2

[35] Documentation of the Microsoft Excel File Format, OpenOffice.org, , 2008-04-02. 4.1.5

[36] Schnabel, A.: OS/2 eCommSTation, 2005-07-01, . 3.2

[37] Microsoft’s Open Specification Promise: No Assurance for GPL, The Software Free- dom Law Center, , 2008-03-12. 4.1.2

[38] Oliver, A. a Stampoultzis, G. a Sengupta, A. a Klute, R.: Apache POI - Java API To Access Microsoft Format Files, The Apache POI Project, , 2009-02-19. 6.1, 7.3.1, 7.3.2, 7.3.3

[39] Stampoultzis, G. a Kozlov, Y.: Busy Developers’ Guide to HSSF and XSSF Fe- atures, The Apache POI Project, , 2009-05-23. 6.1

41 [40] PowerPoint Object Model Reference, Microsoft Corporation, , 2009-05-23. 5.1.5

[41] Spolsky, J.: How Microsoft Lost the API War, 2004-06-13, . 3.1.1

[42] Star Division StarOffice 5.0 Personal Edition, The Computer Paper, , 1999-03-01. 3.3

[43] OpenOffice.org Product Comparison, Sun Microsystems, Inc., , 2009-05-23. 3.3

[44] OpenOffice.org 1.1 Setup Guide, Sun Microsystems, Inc., , 2003-06-01. 3.2, 5.2, 7.2

[45] SharpZipLib, , 2009-05-23. 8.2

[46] Universal Network Objects, OpenOffice.org, , 2009-05-11. 5.2

[47] Weis, T.: KOffice, , 1999. 3.5

[48] Word Object Model Reference, Microsoft Corporation, , 2009-05-23. 5.1.3

[49] AbiWord, Wikipedia, The Free Encyclopedia., 2009-05-05, . 3

[50] Application programming interface, Wikipedia, The Free Encyclopedia., 2009- 05-21, . 5

[51] COM Interop, Wikipedia, The Free Encyclopedia., 2009-04-08, . 5.1.2

[52] Component Object Model, Wikipedia, The Free Encyclopedia., 2009-05-24, . 5.1.1

[53] .NET Framework, Wikipedia, The Free Encyclopedia., 2009-05-24, . 5.1.2

42 [54] Microsoft Excel, Wikipedia, The Free Encyclopedia., 2009-05-22, . 4.1.5

[55] JasperReports, Wikipedia, The Free Encyclopedia, , 2009-04-04. 6.4, 7.3.1, 7.3.2

[56] IBM Lotus Symphony, Wikipedia, The Free Encyclopedia., 2009-05-10, . 3.4, 4.4

[57] OpenDocument, Wikipedia, The Free Encyclopedia., 2009-05-23, . 4.2, 7.1

[58] OpenOffice.org, Wikipedia, The Free Encyclopedia, , 2009-05-22. 3.2, 4.2

[59] Office Open XML, Wikipedia, The Free Encyclopedia., 2009-05-23, . 4.1.1, 4.1.2, 7.1

[60] Open Packaging Convention, Wikipedia, The Free Encyclopedia., 2009-05-23, . 4.1.1

[61] Office Suites, Wikipedia, The Free Encyclopedia, , 2009-05-22. 2.1, 2.2

[62] Apache POI, Wikipedia, The Free Encyclopedia, , 2009-05-21. 6.1

[63] Microsoft PowerPoint, Wikipedia, The Free Encyclopedia., 2009-05-20, . 4.1.6

[64] Presentation program, Wikipedia, The Free Encyclopedia., 2009-05-19, . 2.4.3

[65] Spreadsheet, Wikipedia, The Free Encyclopedia., 2009-05-22, . 2.4.2

43 [66] StarOffice, Wikipedia, The Free Encyclopedia., 2009-05-16, . 3.3

[67] Structured storage, Wikipedia, The Free Encyclopedia., 2009-02-07, . 7.1

[68] Microsoft Word, Wikipedia, The Free Encyclopedia., 2009-05-23, http://en.wikipedia.org/w/index.php?title=Microsoft_Word&oldid=291731251 . 4.1.4

[69] WordPerfect, Wikipedia, The Free Encyclopedia., 2009-05-11, . 3

[70] Word processor, Wikipedia, The Free Encyclopedia., 2009-05-10, . 2.4.1

[71] Extensible Stylesheet Language, Wikipedia, The Free Encyclopedia, , 2009-04-10. 7.4

44 Rejstˇrík

.NET Framework, 21 Faktura, 36 .doc, 16 .docx, 16 IBM Lotus Symphony, 11 .odp, 18 IBM Lotus Symphony Documents, 11 .ods, 18 IBM Lotus Symphony Presentations, 11 .odt, 18 IBM Lotus Symphony Spreadsheets, 11 .pps, 17 Impress, 10 .ppsx, 17 iReport, 27 .ppt, 17 ISO/IEC 26300, 18 .pptx, 17 ISO/IEC 29500:2008, 13 .xls, 17 JasperReports, 27 .xlsx, 17 JRXML, 27 AbiWord, 7 Ami Pro, 8 Kanceláˇrskýbalík, 2 AODL, 27 KOffice, 12 Apache POI, 25 KPresenter, 12 API, 20 Kross, 23 KSpead, 12 Bean Scripting Framework, 23 KWord, 12 BIFF, 17 Binární soubor, 13 Lotus 1-2-3, 11 Binary Interchange File Format, 17 MathML, 18 Calc, 10 Microsoft Office, 8 COM, 20 Microsoft Office Excel, 8 COM Interop, 21 Microsoft Office PoewrPoint, 8 Comma-Separated Values, 29 Microsoft Office Word, 8 Component Object Model, 20 Microsoft Open Specification Promise, 15 Compound documents, 15 Multi-Tool Word, 8 Confluence-Word Convertor, 34 Multiplan, 8 CSV, 29 OASIS Open Document Format, 18 CWC, 34 ODF, 18 D-Bus, 24 ODF Toolkit, 27 DCOP, 24 ODFDOM, 27 Dokument prezentaˇcníhoprogramu, 5 ODFDOM Java, 27 Dokument tabulkového procesoru, 4 Office Math , 15 Dokument textového procesoru, 4 Office Open XML, 13 DrawingML, 15 OfficeUtil, 33 OLE 2.0, 15 ExcelPackage, 26 OOXML, 13 eXtensible Stylesheet Language, 32 Open Packaging Convention, 15

45 OpenDocument, 18 OpenOffice.org, 10 OpenOffice.org API plugin, 23 OpenOffice.org Basic, 22 OpenOffice.org Portable, 10

POI, 25 PresentationML, 15 Prezentaˇcníprogram, 5

RedOffice, 9 Rich Text Format, 16 RTF, 16

Serverový mód, 11 SpreadsheetML, 15 StarCalc, 11 StarImpress, 11 StarOffice, 11 StarWriter, 11 Structured storage, 15

Tabulkový procesor, 4 Textový procesor, 4 Textový soubor, 13

Uniform Office Format, 10 Universal Network Objects, 22 UNO, 22

Visual Basic for Applications, 20

WordPerfect, 7 WordprocessingML, 15 Writer, 10 WYSIWYG, 4

XML, 13 XSL, 32

46