Tokenizovatelný FlowDocument [WPF] [C#]

Snaha o rozšíření System.Windows.Documents.FlowDocument tak, aby bylo možné vkládat zástupné prvky (tokeny) a hromadně pak generovat dokumenty buď jako RTF nebo PDF se skutečnými hodnotami na místě tokenů. Jinými slovy uživatelsky přátelštější hromadná korespondence s napojením tokenů na databázi.

GUI editace je řešená nad System.Windows.Controls.RichTextBox. Export do PDF knihovnou MigraDoc (http://www.pdfsharp.net), kdy je však FlowDocument manuálně procházen a převáděn na MigraDoc objekty. Podpora tedy není plná, ale dostatečná pro základní použití. Příklad: rozložení na stránce je řešeno vložením objektu děděného z Table rozdělující stránku na tři sloupce...

Nejedná se o samostatný program, ale výsek z jiného. Jmenné prostředí Demos.Warden.StudyRelatedEntities představuje ORM cílové, konkrétní, zde nesouvisející, databáze.

Backend část

Enumerations => číselník pro knihovnu
Exceptions => typy výjimek pro knihovnu
FlowDocumentTagManager => manažer, přes ten ovládáme
FlowDocumentWalker => obecnější walker strukturou FlowDokument, kdy lze zavolat nějakou metodu na token objekt.
PdfConverter => manuální převod FlowDocument do MigraDoc dokumentu
ProcessableElementsChecker => snaží se projít dokument stejně jako PdfConverter a udržet konzistenci toho, co je a není podchyceno v manuální koverzi
TagBaseElement => základní token třída
TagElement => generická zděděná třída pro určitý typ
ThreeColumnLayoutTable => potomek Table pro 3 dílné rozložení na stránce

WPF GUI část

HLAVNÍ GUI WPF XAML => Hlavní GUI okno XAML
HLAVNÍ GUI WPF C# => to samé, C# code behind
Pomocné GUI okno muž/žena XAML => Okno pro ad-hoc definici prvků podle pohlaví osoby z databáze XAML
Pomocné GUI okno muž/žena C# => to samé, C# code behind

Chtělo by to celé zobecnit, takže odstranit vazby na některé nesouvisející třídy, ale na to jsem moc líný...

Creation: 2018-04-23 23:50:03 | Authors: Demo