Vous êtes sur la page 1sur 19

1

Les options dimpression

Les options dimpression


Sommaire
1

Introduction ..................................................................................................................................... 2

Le principe dimpression en Windows Form ................................................................................... 2

2.1

Approche de lobjet PrintDocument ...................................................................................... 2

2.2

Principe de limpression ......................................................................................................... 3

Imprimer avec les botes de dialogues ............................................................................................ 4


3.1

La classe contenant tous les composants relatifs limpression : le PrinterSettings ............ 4

3.2

Les composants Dialog .......................................................................................................... 5

3.2.1

Le composant PageSetupDialog ........................................................................................ 5

3.2.2

Le composant PrintPreviewDialog ..................................................................................... 8

3.2.3

Le composant PrintDialog ............................................................................................... 11

Imprimer grce lvnement PrintPage ..................................................................................... 13

Les diffrents types dimpression.................................................................................................. 13


5.1

Imprimer un graphisme ou une image ................................................................................ 13

5.2

Imprimer un texte ................................................................................................................ 16

Point sur la scurit dimpression ................................................................................................. 17

Aperu avant impression avec le PrintPreviewControl ................................................................. 18

Conclusion ..................................................................................................................................... 19

14/09/08

Les options dimpression

1 Introduction
Dans ce chapitre sur les impressions en Windows Form, vous apprendrez grer les diffrents
contrles et objets permettant la gestion de limpression dun document. Pour cela il existe trois
composants sous forme de botes de dialogues ainsi que plusieurs autres contrles et objets. Ces
lments vous permettront de personnaliser limpression autant la conception qu lexcution.

2 Le principe dimpression en Windows Form


2.1 Approche de lobjet PrintDocument
Le PrintDocument dfinit un objet reprsentant un document qui le renvoie la sortie de
limprimante. Cette classe vous permet dimprimer des documents contenant des textes ou encore
des images. Ainsi lorsque vous imprimez un document celui-ci est symbolis par la classe
PrintDocument. En effet il nexiste pas de reprsentation visuelle mais il apparat dans les dlais de
conception. Elle possde toutes les informations ncessaires pour tablir limpression du document
dfini.
Remarque : PrintDocument se situe dans lespace de nom System.Drawing.Printing

14/09/08

Les options dimpression

Comme lobjet PrintDocument ne possde pas de reprsentation visuelle celui-ci est affich en bas
lorsque vous linsrez dans votre Formulaire de puis la ToolBox

2.2 Principe de limpression


Vous devez donc crer une instance de la classe PrintDocument afin dimprimer votre document tout
en dfinissant les proprits ncessaires votre impression. Puis vous appelez la mthode Print dans
le but de lancer limpression. En effet cette mthode fait elle-mme appel aux mthodes
OnStartPrint, OnEndPrint, OnStartPage, OnEndPage qui indiquent le mode dimpression du
document. Cela engendre ainsi un ou plusieurs vnements PrintPage. Par ailleurs un vnement
PrintPage sera cr pour chaque page si limpression comporte plusieurs pages.

14/09/08

Les options dimpression

3 Imprimer avec les botes de dialogues


3.1 La classe contenant tous les composants relatifs limpression : le
PrinterSettings
Lorsquun utilisateur voudra imprimer un document, il voudra surement pouvoir
personnaliser son impression. Ces options sont configurables et donnes par le concepteur. Tout ce
qui concerne limpression se trouve dans la classe PrinterSetting. Il permet laide des composants
Dialog (dcrits dans la prochaine partie) de personnaliser nos impressions : nombres de pages,
imprimante utiliser,
Voici les principales proprits du PrinterSettings :

Proprit

Description

Copies

Elle permet de connatre et de dfinir le nombre


de fois que le document devra tre imprim.

DefaultPagesettings

Elle permet de connatre les paramtres par


default dune page pour une imprimante.

InstalledPrinters

Elle permet de connatre le nom de toutes les


imprimantes installes sur lordinateur. Cette
proprit est Static.

PaperSizes

Elle permet de connatre les formats


dimpression pris en charge par une imprimante.

PaperSources

Elle permet de connatre les bacs papier


disponibles sur une imprimante.

PrinterName

Elle permet de connatre et dfinir le nom de


limprimante utiliser.

PrinterResolutions

Elle permet de connatre toutes les rsolutions


prises en charge par une imprimante.

SupportsColor

Elle permet de savoir si une imprimante permet


limpression en couleur.

14/09/08

Les options dimpression

3.2 Les composants Dialog


Les composants Dialog sont tous les composants permettant dafficher une boite de dialogue
permettant certaines actions. Il existe trois boites de dialogues utiles pour grer les options
dimpression en Windows Form : le PageSetupDialog, le PrintPreviewDialog et le PrintDialog.

3.2.1 Le composant PageSetupDialog


Le PageSetupDialog est le composant permettant de travailler sur la configuration des pages
dun document imprimer. Il permet davoir une boite de dialogue donnant les options suivantes :
taille, source, orientation et marges :

14/09/08

Les options dimpression

Il possde de base un grand nombre de tailles de papiers disponibles comme vous pourrez le
constater :

14/09/08

Les options dimpression

Pour utiliser le PageSetupDialog, il faut instancier un PrintDocument puis le relier un


PageSetupDialog comme dans lexemple suivant. Vous pouvez crer un PageSetupDialog la
conception en faisant simplement un Drag and Drop sur votre formulaire. Dans cet exemple nous
appellerons notre PrintDocument monDocument et notre PageSetupDialog
pageSetupDialog1 :
VB
Dim monDocument As New PrintDocument()
Public Class Form1
InitializeComponent() Le PageSetupDialog sera lanc au dmarrage
PageSetupDialog1.Document = monDocument
PageSetupDialog1.ShowDialog() Pour afficher la boite de dialogue
End Class

//C#
PrintDocument monDocument = new PrintDocument();
public Form1()
{
InitializeComponent(); // Le PageSetupDialog sera lanc au dmarrage
pageSetupDialog1.Document = monDocument;
pageSetupDialog1.ShowDialog(); // Pour afficher la boite de dialogue
}

14/09/08

Les options dimpression

Il existe des proprits afin de personnaliser votre PageSetupDialog :

Proprit

Description

AllowMargins

Elle permet de connaitre si la section des marges


du PageSetupDialog est active.

AllowOrientation

Elle permet de connaitre si la section


dorientation du PageSetupDialog est active.

AllowPaper

Elle permet de connaitre si la section papier du


PageSetupDialog est active.

AllowPrinter

Elle permet de connaitre si le bouton Imprimer


est activ.

Document

Elle permet de connaitre quelle page est


associe un PrintDocument.

EnableMetric

Elle permet de connatre les paramtres des


marges. Si elles sont affiches en millimtre,
elles seront converties automatiquement en
centime de pouces.

MinMargins

Elle permet de connatre les marges minimales


slectionnables par un utilisateur.

PageSettings

Elle permet de connatre les paramtres dune


page modifier.

PrinterSettings

Elle permet de connatre les paramtres


dimpression modifiable par lutilisateur lors
dune impression.

ShowHelp

Elle permet de dfinir si le bouton Help est


visible.

ShowNetwork

Elle permet de dfinir si le bouton Rseau est


visible.

3.2.2 Le composant PrintPreviewDialog


Le PrintPreviewDialog est un composant permettant davoir un aperu avant impression .
Il possde plusieurs outils utiles : un zoom, plusieurs types daffichage des pages, le moyen de
tourner page par page, un bouton fermer ainsi quun bouton imprimer. Le bouton imprimer permet
dappeler la mthode Print du PrintDocument qui dirige tout vers la sortie de limprimante.
14/09/08

Les options dimpression

Pour utiliser le PrintPreviewDialog, il faut instancier un PrintDocument puis le relier un


PrintPreviewDialog comme dans lexemple suivant. Vous pouvez crer un PrintPreviewDialog la
conception en faisant simplement un Drag and Drop sur votre formulaire. Dans cet exemple nous
appellerons notre PrintDocument monDocument et notre PrintPreviewDialog
printPreviewDialog1 :
VB
Dim monDocument As New PrintDocument()
Public Class Form1
InitializeComponent() Le PrintPreviewDialog sera lanc au dmarrage
PrintPreviewDialog1.Document = monDocument
PrintPreviewDialog1.ShowDialog() Pour afficher la boite de dialogue
End Class

//C#
PrintDocument monDocument = new PrintDocument();
public Form1()
{
InitializeComponent(); // Le PrintPreviewDialog sera lanc au
dmarrage
printPreviewDialog1.Document = monDocument;
printPreviewDialog1.ShowDialog(); // Pour afficher la boite de
dialogue
}

14/09/08

10

Les options dimpression

Vous devriez par la suite apercevoir une boite de dialogue comme celle-ci :

Vous pouvez grer laperu de votre boite de dialogue grce beaucoup de proprits. Vous pouvez
en avoir la liste en cliquant ici.

14/09/08

11

Les options dimpression

3.2.3

Le composant PrintDialog

Le PrintDialog est un composant permettant davoir une boite de dialogue qui permettra
un utilisateur lors de son excution de paramtrer limpression. Elle permet par exemple de
slectionner une imprimante ou de choisir les parties imprimer dun document.

Pour utiliser le PrintDialog, il faut instancier un PrintDocument puis le relier un PrintDialog comme
dans lexemple suivant. Vous pouvez crer un PrintDialog la conception en faisant simplement un
Drag and Drop sur votre formulaire. Dans cet exemple nous appellerons notre PrintDocument
monDocument et notre PrintDialog printDialog1 :
VB
Dim monDocument As New PrintDocument()
Public Class Form1
InitializeComponent() Le PrintDialog sera lanc au dmarrage
PrintDialog1.Document = monDocument
PrintDialog1.ShowDialog() Pour afficher la boite de dialogue
End Class

14/09/08

12

Les options dimpression

//C#
PrintDocument monDocument = new PrintDocument();
public Form1()
{
InitializeComponent(); // Le PrintPreviewDialog sera lanc au
dmarrage
printDialog1.Document = monDocument;
printDialog1.ShowDialog(); // Pour afficher la boite de dialogue
}

Voici les proprits principales associes au PrintDialog :

Proprit

Description

AllowCurrentPage

Elle permet dindiquer si le bouton Current


Page est affich.

AllowPrintToFile

Elle permet dindiquer si la check box Print To


File est affiche.

AllowSelection

Elle permet dindiquer si le bouton Selection


est affich.

AllowSomePages

Elle permet dindiquer si le bouton Pages est


affich.

Document

Elle permet de connaitre quelle page est


associe un PrintDocument.

PrinterSettings

Elle permet dindiquer les paramtres


dimpression modifiable par la boite de dialogue.

PrintToFile

Elle permet dindiquer si la check box Print To


File est slectionne.

ShowHelp

Elle permet de dfinir si le bouton Help est


visible.

ShowNetwork

Elle permet de dfinir si le bouton Rseau est


visible.

14/09/08

13

Les options dimpression

4 Imprimer grce lvnement PrintPage


Lvnement PrintPage est le principal vnement impliqu dans une impression de document. Cet
vnement renvoie tous les objets et toutes les informations ncessaires une impression. Il est
compris dans le gestionnaire dtat dvnement PrintPageEventArgs (contenant les informations
relatives un vnement lev qui doit tre spcifique celui-ci). Le contenu est envoy par lobjet
Graphics de PrintPageEventArgs.
Remarque : La page imprime se comporte comme un formulaire, un contrle ou tous autres dessins
reprsents par lobjet Graphics.
Vous trouverez ci-dessous les diffrentes proprits que possde lobjet PrintPageEventArgs :
Proprits

Description

Cancel

Dfinit selon une valeur attribue la proprit


si limpression est annule.

Graphics

Renvoie lobjet Graphics pour limpression


dimages.

HasMorePages

Indique si une autre page doit tre imprime.

MarginBounds

Obtient une zone rectangulaire qui est la partie


de la page lintrieur des marges.

PageBounds

Obtient aussi une zone rectangulaire mais pour


la totalit de la page

PageSettings

Renvoie les paramtres de la page actuelle.

5 Les diffrents types dimpression


5.1 Imprimer un graphisme ou une image
Pour utiliser une impression graphique, vous devez gnrer un gestionnaire dtat dvnement
PrintPageEventArgs et incorporer un graphique. Si vous voulez imprimer une image vous utilisez
aussi le mme principe que pour une impression graphique, cependant vous devrez utiliser la
mthode Graphics.DrawImage.
Ainsi dans un premier temps avant de crer votre code, vous devez insrer lespace de nom
System.Drawing.Printing. Ensuite incorporez un objet PrintDocument dans votre formulaire dans la
partie design. Puis dans cette mme partie, vous double-cliquez sur PrintDocument afin de crer la
mthode dimpression. Ensuite vous pouvez insrer votre image grce la mthode
Graphics.DrawImage. Vous trouverez un exemple de code dimpression dune image ci-dessous :
14/09/08

14

Les options dimpression

VB

Public Sub New()


InitializeComponent()
Dim monPrintDocument As New PrintDocument()
AddHandler monPrintDocument.PrintPage, New
PrintPageEventHandler(AddressOf Me.ImageAImprimer)
monPrintDocument.Print()
End Sub
Private Sub ImageAImprimer(ByVal sender As System.Object, ByVal ev As
System.Drawing.Printing.PrintPageEventArgs) Handles
PrintDocument1.PrintPage
ev.Graphics.DrawImage(Image.FromFile("C:\Users\Ketin\Desktop\DOTNET\Logo
DotNet\Logo.png"), ev.Graphics.RenderingOrigin)
End Sub

//C#

using System.Drawing.Printing;
public Form1()
{
InitializeComponent();
PrintDocument monPrintDocument = new PrintDocument();
monPrintDocument.PrintPage += new
PrintPageEventHandler((this.ImageAImprimer));
monPrintDocument.Print();
}
private void ImageAImprimer(object sender, PrintPageEventArgs ev)
{
ev.Graphics.DrawImage(Image.FromFile(@"C:\Users\Ketin\Desktop\DOTNET\Logo
DotNet\Logo.png"), ev.Graphics.RenderingOrigin);
}

14/09/08

15

Les options dimpression

Voici les tapes que vous rencontrerez lorsque vous aurez dbugg votre application :

Vous enregistrez votre image afin de limprimer

Une boite de dialogue souvrira ensuite pour confirmer limpression

Un icne dimprimante saffichera dans la barre des tches de votre ordinateur, il correspond la file
dattente.

14/09/08

16

Les options dimpression

Voici un aperu de limpression de limage que nous avons utilis. Grce la proprit
ev.Graphics.RenderingOrigin, limage est imprime selon sa taille dorigine.

5.2 Imprimer un texte


Tout simplement, la mthode Graphics.DrawString vous permettra dimprimer des textes. Vous
devrez spcifier la police, la taille, la couleur et les coordonnes de lemplacement du texte.

14/09/08

17

Les options dimpression

6 Point sur la scurit dimpression


La permission dimprimer peut tre gre grce la classe PrintingPermission. Dans celle-ci se trouve
lnumration PrintingPermissionLevel qui assure les autorisations dimpression selon des niveaux de
scurit. Il existe quatre niveaux qui sont les suivants (du plus restreint au plus accessible):
Les Diffrents Niveaux

Description

NoPrinting

Ce niveau nautorise aucun accs limprimante,


et donc aucune impression nest possible.
NoPrinting est un sous-ensemble de
SafePrinting.

SafePrinting

Offre une impression selon un accs restreint via


une boite de dialogue. SafePrinting est un sousensemble de DefaultPrinting.

DefaultPrinting

Selon un accs semi-restreint via une boite de


dialogue, DefaultPrinting offre une impression
scurise. Cest le niveau par dfaut.
DefaultPrinting est un sous-ensemble
dAllPrinting.

AllPrinting

Fournit un accs total, sans restriction, toutes


les imprimantes.

14/09/08

18

Les options dimpression

7 Aperu avant impression avec le PrintPreviewControl


Le contrle PrintPreviewControl vous permettra davoir un aperu brut de votre impression.
Cependant il ne possde aucun bouton ou boite de dialogue.
Voici quelques proprits du contrle PrintPreviewControl :
Proprits

Description

AutoZoom

Dfinit selon une valeur qui ajuste la proprit


Zoom suivant un redimensionnement du
contrle ou une modification du nombre de
pages affiches.

Zoom

Dfinit le niveau du Zoom du document.

Columns

Indique le nombre de pages qui sont affiches


horizontalement lcran.

Rows

Indique le nombre de pages qui sont affiches


verticalement lcran.

Document

Dfinit le document associ au contrle.

StartPage

Indique le numro de la page qui commence la


prvisualisation.

UseAntiAlias

Indique si lanti-alias est utilis. Celui-ci est


employ pour un aperu avant impression ayant
un affichage plus prcis mais cela engendre une
baisse de la performance daffichage.

Lorsque vous instanciez la classe PrintPreviewControl, certaines proprits possderont des valeurs
initiales :
Proprits

Valeur par dfaut

AutoZoom

True

Document

Null

Column

Rows

StartPage

14/09/08

19

Les options dimpression

8 Conclusion
Vous avez ainsi termin ce chapitre sur les Impressions en Windows Form et vous possdez tous
les atouts ncessaires pour laborer une impression grce aux diffrents objets PrintPreviewDialog,
PrinDocument, PrintPreviewControl, etc.
Lquipe Windows Form

14/09/08