HisTech Up

UWP: Imprimer à partir de votre application part 1 – S’inscrire pour l’impression

Introduction

user

Christian Hissibini

I am a Tech enthusiast who loves to blend Dev & Design on Web and Mobile Platforms. I am also a Windows Platform Dev MVP


LATEST POSTS

What are the differences between Data Mining, Machine Learning and Deep Learning? 11th February, 2018

What are the challenges of using Artificial Intelligence? 15th January, 2018

Mobile Development

UWP: Imprimer à partir de votre application part 1 – S’inscrire pour l’impression

Posted on .

Découvrez comment imprimer des documents à partir d’une application Windows universelle. Cette rubrique montre également comment imprimer des pages spécifiques.

S’inscrire pour l’impression

Pour ajouter la fonctionnalité d’impression à votre application, vous devez commencer par vous inscrire au contrat d’impression. Vous devez répéter cette opération sur chaque écran à partir duquel vous souhaitez que votre client soit en mesure d’imprimer. Seul l’écran qui est affiché à l’utilisateur peut être inscrit à des fins d’impression. Si un écran de votre application est inscrit à des fins d’impression, son inscription doit être annulée au moment de sa fermeture. S’il est remplacé par un autre écran, l’écran suivant doit s’inscrire à un nouveau contrat d’impression lorsqu’il s’ouvre.

Conseil Si vous souhaitez prendre en charge l’impression à partir de plusieurs pages dans votre application, vous pouvez inclure ce code d’impression dans une classe d’assistance commune afin que les pages de votre application le réutilisent. Pour obtenir un exemple de procédure à suivre, voir la classe PrintHelper dans l’exemple d’impression UWP.

Pour commencer, déclarez les classes PrintManager et PrintDocument. Le type PrintManagerse trouve dans l’espace de noms Windows.Graphics.Printing avec des types prenant en charge d’autres fonctionnalités d’impression Windows. Le type PrintDocument se trouve dans l’espace de noms Windows.UI.Xaml.Printing avec d’autres types autorisant la préparation du contenu XAML à des fins d’impression. Vous pouvez faciliter l’écriture de votre code d’impression en ajoutant les instructions using ou Imports suivantes dans votre page.

C#
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;

La classe PrintDocument permet de gérer une grande partie de l’interaction entre l’application et la classe PrintManager, mais elle expose quelques rappels qui lui sont propres. Lors de l’inscription, créez des instances des classes PrintManager et PrintDocument, et inscrivez des gestionnaires pour leurs événements d’impression.

Dans l’exemple d’impression UWP, l’inscription est effectuée à l’aide de la méthode RegisterForPrinting.

C#
public virtual void RegisterForPrinting()
{
   printDocument = new PrintDocument();
   printDocumentSource = printDocument.DocumentSource;
   printDocument.Paginate += CreatePrintPreviewPages;
   printDocument.GetPreviewPage += GetPrintPreviewPage;
   printDocument.AddPages += AddPrintPages;

   PrintManager printMan = PrintManager.GetForCurrentView();
   printMan.PrintTaskRequested += PrintTaskRequested;
}

Quand l’utilisateur accède à une page qui prend en charge la méthode OnNavigatedTo, il initie l’inscription à l’intérieur de celle-ci.

C#
protected override void OnNavigatedTo(NavigationEventArgs e)
{
   // Initalize common helper class and register for printing
   printHelper = new PrintHelper(this);
   printHelper.RegisterForPrinting();

   // Initialize print content for this scenario
   printHelper.PreparePrintContent(new PageToPrint());

   // Tell the user how to print
   MainPage.Current.NotifyUser("Print contract registered with customization, use the Print button to print.", NotifyType.StatusMessage);
}

Quand l’utilisateur quitte la page, déconnectez les gestionnaires d’événements d’impression. Si vous disposez d’une application de plusieurs pages et ne déconnectez pas l’impression, une exception est levée quand l’utilisateur quitte la page, puis y revient.

C#
protected override void OnNavigatedFrom(NavigationEventArgs e)
{
   if (printHelper != null)
   {
         printHelper.UnregisterForPrinting();
   }
}

 

Ref
https://docs.microsoft.com/

profile

Christian Hissibini

I am a Tech enthusiast who loves to blend Dev & Design on Web and Mobile Platforms. I am also a Windows Platform Dev MVP

There are no comments.

Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

View Comments (0) ...
Navigation