10.9. Vkládání obrázků a multimédií

Do textu lze vkládat multimediální prvky - obrázky, animace a zvuky. Za tímto účelem je zaveden blokový element mediaobject a inline element inlinemediaobject se stejným obsahem.

Elementy mediaobject a inlinemediaobject mohou obsahovat tyto elementy:

audioobject

Zapouzdřuje element audiodata pro vložení zvuku.

imageobject

Zapouzdřuje element imagedata pro vložení obrázku.

videoobject

Zapouzdřuje element videodata pro vložení animace.

textobject

Poskytuje textovou alternativu k výše zmiňovaným elementům.

objectinfo

Volitelné meta-informace pro vložený multimediální prvek.

Do jednoho mediaobject lze vložit více formátů. DocBook pak dokáže sám zvolit vhodný formát vůči typu generovaného dokumentu.

ikona
<figure>
  <title>Struktura stránky</title>
  <mediaobject>
    <imageobject role="fo">
      <imagedata fileref="obrazky/fancy.svg"
         format="SVG" width="800px" depth="380px" />
    </imageobject>
    <imageobject role="html">
      <imagedata fileref="obrazky/fancy.png"
         format="PNG" width="700px" />
    </imageobject>
    <textobject><phrase>Obrázek struktury stránky</phrase></textobject>
  </mediaobject>
</figure>

V tomto případě se vektorový obrázek ve formátu SVG vloží pouze do PDF, do HTML se vygeneruje obrázek ve formátu PNG. Pro formát nepodporující obrázky by se vložil pouze textový popisek. Obsah mediaobject se parsuje kaskádovitě shora a na výstup se pošle první vyhovující objekt. Pokud tedy uvedeme za sebe dva různé obrázky ve stejném formátu, do dokumentu se použije ten první.

Atributem role přímo můžeme určit pro jaký výstup se má daný objekt použít. V tomto případě jsme SVG určili pro FO, tedy generování PDF a PNG je určeno pro HTML.

Všimněte si na tomto příkladě několika věcí. První věcí je element figure, který vše obaluje. Ten označuje vkládání obrázku a umožní nám k němu také vytvořit titulek. Element imagedata přímo ukazuje na konkrétní soubor obsahující obrázek. Může mít řadu atributů, které většinou nemusíme uvádět ale upřesňují chování obrázku. Jejich plný výčet lze najít v dokumentaci.

Zvuky a video se vkládají podobným způsobem, jen se použijí odpovídající elementy a nepoužijeme figure.

ikona
<mediaobject>
<audioobject>
  <objectinfo>
    <title>Zvuk</title>
  </objectinfo>
  <audiodata fileref="zvuk.wav"/>
</audioobject>
<textobject>Zvuková ukázka.</textobject>
</mediaobject>

<mediaobject>
 <videoobject>
  <videodata fileref='movie.avi'/>
 </videoobject>
</mediaobject>