2010-11-02 18 views
2

J'ai une application qui génère un FlowDocument assez long. Il utilise un "custom" paginator pour envelopper un en-tête et un pied de page autour de chaque page lors de l'impression. De plus, chaque page contient un ou plusieurs "sous-titres".WPF FlowDocument Table des matières

Je voudrais aussi qu'il crée automatiquement une table des matières pour ce document, en montrant les sous-titres apparaissant sur chaque page.

Voici le problème. Je ne sais pas quelles sous-titres apparaissent sur chaque page jusqu'à ce que j'imprime le document et il passe par le paginateur, qui casse le document en pages. Mais à ce moment-là, tout a été réduit à Visuals et ne semble plus contenir d'informations pertinentes sur les objets réels que j'ai mis dans le document (donc je ne peux pas lire les propriétés de Tag ou même le contenu).

Est-ce que quelqu'un a des moyens intelligents que j'ai pu déterminer pendant/avant d'imprimer quels éléments apparaissent sur chaque page?

Répondre

0

La façon dont j'ai fait ceci est de créer un FixedDocument au lieu d'un FlowDocument, avec mon helper class. Laissez de la place pour le TOC ou vous pouvez le ré-écouler après. Au fur et à mesure que j'ajoute chaque élément, je sais sur quelle page il se trouve, donc je peux générer une table des matières par la suite. FixedDocuments est très facile à générer et à imprimer.