Přišel mi docx! Jak ho mám otevřít?

5. 12. 2007
Doba čtení: 5 minut

Sdílet

Není to zatím příliš časté, ale někdy se prostě stane, že vám do schránky dorazí soubor ve formátu Open XML. Dnes již známá přípona .docx ale věstí nepříjemné problémy, protože ji zatím přímo programy neumějí otevřít. Existuje ale docela rozumná cesta, která vám umožní do útrob dokumentu nahlédnout.

Obecně o Open XML

O Open XML se v posledních měsících hodně hovořilo, ale pokud nevíte, oč se jedná, pokusím se ve zkratce shrnout celou situaci. Pokud vás teorie nezajímá, s klidným srdcem můžete přeskočit o kus dále. Microsoft se rozhodl, že vyslyší volání uživatelů po otevřeném formátu a do nové verze balíku MS Office 2007 připravil také nový formát Open XML.

Ten je, podobně jako OpenDocument Formát (známý z OpenOffice.org), postaven na známé XML struktuře, která je společně s dalšími daty zabalena do jednoho komprimovaného (ZIP) archivu. Technicky tedy skutečně není problém dokument zpracovat.

Mnohým uživatelům ale vadí neuvěřitelně rozsáhlá dokumentace, která má asi 6000 stran a především mnoho nejasností a problematických míst. Formát je totiž místy velmi svázán s konkrétními aplikacemi, případně se odkazuje na jiné formáty z dílny Microsoftu.

Firma se snaží získat na Open XML vlastní ISO standard a přestože byl původně připraven zrychlený schvalovací proces, nakonec standard přijat nebyl. Ke schvalování se mohla vyjádřit i veřejnost a ačkoliv Český Normalizační Institut celkově nový otevřený standard vítal (jako obecně většina lidí), také nesouhlasil s mnoha pasážemi dokumentace. Microsoft ovšem připomínky veřejně bagatelizuje a snaží se ISO standard stále získat.

Pomóc! Přišel mi docx!

Tak či onak nový balík MS Office 2007 je už mezi uživateli a jeho dokumenty se již začínají objevovat na internetu. Možná se vám už také stalo, že některý z nich přistál ve vaší schránce a vy jste nevěděli, co s ním dělat. OpenOffice.org jej neotevřou a vy nemáte po ruce žádný rozumný nástroj, který by vám pomohl.

Už jste se v praxi setkali s .docx souborem?

Naštěstí není situace tak beznadějná, jak by se mohlo zdát a příslušné utilitky stačí stáhnout a začít používat. Předvedeme si dvě různé metody řešení a naučíme se .docx soubory zpracovat.

Metoda 0: rm *.docx

Protože už předem vím, že se to v diskusi objeví, zmíním se i v článku. Samozřejmě nejjistější je odepsat odesílateli takového souboru, že skutečně balík MS Office 2007 nevlastním a ať se laskavě obtěžuje poslat dokument v nějakém rozumném formátu.

V mém případě to zatím pokaždé zabralo, ale ne vždy je to možné. Ať už narazíte na uživatele, který prostě neví, nebo nemůžete (třeba) zákazníkovi naznačit, že je úplně mimo. Stejně tak soubory stažené z internetu (třeba zadání seminární práce) asi těžko pošlete autorovi zpět.

V takové situaci se budete muset poprat i s .docx tak, jak jste ho dostali. Tady nastupují ony dvě zmíněné metody.

Metoda 1: rozšíření do OpenOffice.org

Řešení nastolené situace nám nabízí společnost Novell, která v rámci spolupráce s Microsoftem vytvořila konvertory pro OpenOffice.org. Ty dokáží otevírat i ukládat ve formátu .docx.

Konvertor je distribuován v podobě rozšíření pro OOo a jeho použití je velmi snadné. K instalaci vám bude stačit OpenOffice.org verze 2.0.4 a vyšší. Navštivte web Novellu a konkrétně stránku pro získání OpenXML Translator. Na této stránce naleznete soubor odfconverter-1.0.0-2.oxt a vedle něj tlačítko Download. Samozřejmě jej stáhněte, má necelé 4 MB.

Spusťte OpenOffice.org a navštivte menu Nástroje → Správce rozšíření. Klikněte na Přidat a namiřte správce na stažený soubor. Rozšíření se samo nainstaluje.

docx1

Teď stačí OOo zavřít a znovu spustit. Podpora OpenXML je vám k dispozici.

V otevíracím i ukládacím dialogu přibyla možnost pracovat s formátem Microsoft Word 2007 Document (*.docx). Samozřejmě jsem Translator vyzkoušel na několika dokumentech stažených z internetu, případně přijatých e-mailem.

docx2

Zkušenosti jsou bohužel proměnlivé. Některé dokumenty načetl bez problémů, většina se mu ale nelíbila a tvrdil, že jsou poškozené. Oprava bohužel neproběhla dobře a otevření se nezdařilo.

docx3

Pokusil jsem se soubor uložit s pomocí Translatoru a zase jej přečíst. Tady nebyl nejmenší problém a vše probíhalo dle očekávání. Soubory, které do .docx v OOo uložíte, také s pomocí konvertoru zase načtete. Je tedy zřejmé, že si rozšíření zatím neporadí se všemi záludnostmi Open XML.

Metoda 2: konverzní utilita

Velmi dobré zkušenosti mám ale s druhým řešením, které také pochází z dílen Novellu. Jedná se o řádkovou konverzní utilitku, která jednoduše provede převod z .docx do .odt.

Najdeme ji na naší známé webové stránce pod názvem odf-converter-1.0.0-5.i586.rpm. Přípona .rpm vás nemusí děsit ani v případě, že nemáte příslušnou distribuci založenou na tomto balíčkovacím systému.

Soubor stáhněte (3 MB) a někam uložte. Teď je potřeba se dostat dovnitř. Já jsem použil Midnight Commander ( mc) a na souboru stiskl enter. Objeví se vám několik souborů, mezi kterými je i CONTENTS.cpio, na něm opět stiskněte enter a jste uvnitř archivu.

V podadresářích /usr/lib/ooo-2.0/program naleznete jediný spustitelný soubor (asi 8 MB) s výmluvným názvem OdfConverter. Ten zkopírujte mimo archiv. To je vše.

Program má na unixové systémy trochu divoké ovládání, které připomíná zadávání parametrů z prostředí DOS. V použití to ale nijak nebrání. Hlavní jsou parametry /I se vstupním souborem /O s výstupním souborem a /DOCX2ODT pro konverzi správným směrem.

Program by měl sám podle přípon poznat, co má dělat, ale jistota je jistota. Pokud chcete provést převedení většího množství souborů v jednom adresáři, můžete použít parametr  /BATCH-DOCX.

Použití programu vypadá následovně:

$ ./OdfConverter /I Dokument.docx /O Dokument.odt /DOCX2ODT

[INFO][Dokument.docx] Converting file: Dokument.docx into Dokument.odt
[INFO][Dokument.docx] Conversion succeeded
[INFO][Dokument.docx] Total conversion time: 00:00:12.7094970
Done.

Výsledkem převodu je soubor s příponou .odt, který se mi podařilo naprosto hladce přečíst v OpenOffice.org. Zkoušel jsem několik různých dokumentů a převod probíhal velmi dobře. Tady jsem žádný problém nezaznamenal a vše fungovalo dle očekávání.

ict ve školství 24

Utilita umí samozřejmě i konverzi v opačném směru a zná i několik dalších parametrů. Ty zjistíte, pokud použijete příkaz

$ ./OdfConverter /HELP

Povedlo se?

Rozhodně se nejedná o bezproblémové a stoprocentní řešení. Pokud ale skutečně nutně potřebujete zpracovat soubor ve formátu Open XML, máte alespoň nějakou šanci se s tím poprat. OpenOffice.org verze 3 už podle všeho nabídnou vlastní integrovaný vstupně/výstupní filtr, který práci (nejen) s .docx zpříjemní. Zatím budeme muset použít to, co je po ruce.

Autor článku

Petr Krčmář pracuje jako šéfredaktor serveru Root.cz. Studoval počítače a média, takže je rozpolcen mezi dva obory. Snaží se dělat obojí, jak nejlépe umí.