Noční můrou programátorů, alespoň v mém případě, jsou tiskové sestavy. Lze to řešit různými komponentami, které ale nejsou z nejlevnějších. Když už jsem musel tiskové sestavy řešit, využíval jsem k tomu HTML a tisk přes Internet Explorer. Šlo to, ale nebylo to úplně ono. Ve WPF najdete objekt PrintDialog pomocí kterého můžete tisknout. Metody jsou v podstatě dvě:

Tisk „screenshotů“

Metoda PrintVisual vykreslí objekt uživatelského rozhraní na tiskárnu místo obrazovky. Důležité je si uvědomit, že opravdu vytiskne jen to, co je na obrazovce vidět.

Tisk „skutečných“ dokumentů

Pokud chcete vytvořit klasickou tiskovou sestavu, je třeba využít metodu PrintDocument, která tiskne objekt dědící po DocumentPaginator, který slouží k vykreslování jednotlivých stránek dokumentu. Jak takový objekt co nejjednodušeji vytvořit? Odpověď je jednoduchá – FlowDocument. Pomocí tohoto objektu můžete vytvořit dokument se všemi možnostmi, jaké má běžný textový editor. Jako zajímavou vlastnost bych uvedl možnost vkládat část uživatelského rozhraní přímo do dokumentu. Pokud tedy chcete vytvořit formulář pro tisk, můžete do dokumentu vložit například textové pole. Ukázkovou aplikaci najdete ke stažení na konci článku.

Štěpán