Bonjour.

Je cherche à savoir faire imprimer un 'tree view' complet de mon IHM en Windows Forms. En réalité, ce tree view dépasse la fenêtre interne dans mon IHM la plupart du temps, et plusieurs pages A4 'portrait' parfois. Il s'agit d'imprimer chaque noeud non sans ses CheckBox, icône et bien sûr case '±' qui l'affublent, comme ils figureraient à l'écran s'ils étaient tous "ouverts".

Je ne suis sûrement pas le premier à trouver intéressant de savoir imprimer un tree view complet avec toutes ses caractéristiques graphiques.

http://msdn.microsoft.com/en-us/libr...tdocument.aspx Mais cet exemple concerne un fichier '.txt' , pas graphique ...
Ces noeuds doivent être traités dans l'ensemble de leurs composants, comme pour les lignes d'un fichier texte.

Méthode à mettre en pratique ?
- Convertir chaque noeud en un image (de la classe Graphics, je pense).
- Remplir une ImageList avec les images de tous les noeuds, récursivement
- Passer l'ImageList à un Streamer qui passe ensuite les images à un objet de classe 'PrintDocument'.
- Utiliser la propriété 'Graphics' de l'objet 'PrintPageEventArgs' - lui-même obtenu de l'évènement 'PrintDocument.PrintPage' - pour redéfinir la cible où imprimer.
- Appeler 'DrawImageUnscaled()' (probablement) répétitivement.

Comme j'imprime un fichier graphique (non texte), quel 'StreamReader' puis-je utiliser pour lire le 'stream' une ligne graphique à la fois ?

J'ai cherché via "Avant de poster -> Articles Windows Forms", mais en vain.
J'investigue entretemps davantage :
- 'How do I in C# ?'
- System.Drawing.Printing namespace overview

Demie solution, mais intéressant :!
"A component that prints any control, including ListViews, TreeViews, DataGridViews, and Forms" : o http://www.codeproject.com/KB/printing/ControlPrint.aspx
- Construit un grand bitmap; pas noeud par noeud -> Il se peut qu'une ligne correspondant à un noeud et addichée en bas d'une page soit tronqué horizontalement et que l'autre moitié figure en haut de la page suivante.
- Il faut déployer les noeuds fermés soi-même
- Une demie-douzaine de classes

Merci d'avance.