Message de Pierre-Yves Hemery (Le 16-09-2011)

2 solutions pour lancer une impression dans une app Metro : soit par le charm Device > Print, soit depuis un bouton de l’app.

L’app gere le contenu a imprimer, et laisse windows gerer l’impression.
On peut bien sur gerer une vue imprimable differente de l’ecran en cours.
Pour pouvoir imprimer, on doit ajouter la capabily print dans le manifest, et implementer le print contract.

HTML5
On formatte le contenu a imprimer en CSS, comme on le ferait dans une page web classique, et en utilisant les events onbefoprint/onafterprint.

XAML
Ici aussi, l’app se contente de produire le contenu dans un PrintDocument et le transmettre au PrintManager pour impression.
Contrairement au html, en xaml il faut aussi gerer le contenu de la preview.

Print experience
On a aussi la possibilite de customiser les options (copies, orientation, pagination…) : lesquelles afficher, leurs ordres d’affichage, valeurs par defaut….
On peut aussi ajouter des options avancees a la PrintTask pour eviter d’enchainer plusieurs boite de dialogue avant d’imprimer (ex. imprimer image+legend ou image seulement), chaque option a sa callback pour prendre en compte le choix sur le contenu a imprimer et mettre a jour la preview.

Direct2D / XPS
L’API contient aussi les methodes pour faire des impressions plus riches avec D2D ou directement en XPS.