• Embed Doc
  • Readcast
  • Collections
  • CommentGo Back
Download
R\u00e9duire toutD\u00e9velopper tout
Code : Tous Code : Multiple Code : Visual Basic Code :
C# Code : Visual C++ Code : J# Code : JScript

Visual Basic
C#
Visual C++
J#
JScript

Programmation Windows Forms
Comment : imprimer un fichier texte compos\u00e9 de plusieurs pages
dans les Windows Forms
Exemple Voir aussi Commentaires

Il est courant d'imprimer du texte \u00e0 partir des applications Windows. La classe Graphics propose des
m\u00e9thodes pour dessiner des objets (graphismes ou texte) sur un p\u00e9riph\u00e9rique, comme un \u00e9cran ou une
imprimante.

Remarque :

Les m\u00e9thodes DrawText de TextRenderer ne sont pas prises en
charge pour l'impression. Vous devez toujours utiliser les
m\u00e9thodes DrawString de Graphics, comme indiqu\u00e9 dans
l'exemple de code suivant, pour dessiner un texte destin\u00e9 \u00e0 \u00eatre
imprim\u00e9.

Pour imprimer du texte
1. Ajoutez un composant PrintDocument et une cha\u00eene \u00e0 votre formulaire.
Visual Basic
Copier le code
PrivateprintDocument1 As NewPrintDocument()
PrivatestringToPrint AsString
C#
Copier le code
private PrintDocument printDocument1 = new
PrintDocument();
private string stringToPrint;

2. Lors de l'impression d'un document, d\u00e9finissez la propri\u00e9t\u00e9 DocumentName en fonction du document que vous souhaitez imprimer, puis ouvrez et lisez le contenu du document jusqu'\u00e0 la cha\u00eene que vous avez ajout\u00e9e pr\u00e9c\u00e9demment.

Visual Basic
Copier le code
DimdocName As String ="testPage.txt"
DimdocPath As String ="c:\"
printDocument1.DocumentName = docName
Dimstream As New FileStream(docPath + docName,
FileMode.Open)

Try
Dimreader As NewStreamReader(stream)
Try

stringToPrint = reader.ReadToEnd()
Finally
reader.Dispose()
End Try
Finally
stream.Dispose()
End Try
C#
Copier le code

string docName ="testPage.txt";
string docPath = @"c:\";
printDocument1.DocumentName = docName;

using (FileStream stream = new FileStream(docPath +
docName, FileMode.Open))
using (StreamReader reader = new
StreamReader(stream))
{
stringToPrint = reader.ReadToEnd();
}3.Dans le gestionnaire d'\u00e9v\u00e9nements PrintPage, utilisez la propri\u00e9t\u00e9 Graphics de la classe

PrintPageEventArgs et le contenu du document pour calculer la longueur de ligne et le nombre de
lignes par page. Apr\u00e8s l'impression de chaque page, v\u00e9rifiez s'il s'agit de la derni\u00e8re et d\u00e9finissez la
propri\u00e9t\u00e9 HasMorePages de la classe PrintPageEventArgs en cons\u00e9quence. L'\u00e9v\u00e9nement PrintPage
est d\u00e9clench\u00e9 jusqu'\u00e0 ce que la propri\u00e9t\u00e9 HasMorePages ait la valeurfa lse. Assurez-vous \u00e9galement
que l'\u00e9v\u00e9nement PrintPage est associ\u00e9 \u00e0 sa m\u00e9thode de gestion d'\u00e9v\u00e9nements.
Dans l'exemple de code suivant, le gestionnaire d'\u00e9v\u00e9nements est utilis\u00e9 pour imprimer le contenu
du fichier "testPage.txt" dans la m\u00eame police que celle utilis\u00e9e sur le formulaire.

Visual Basic
Copier le code
Private SubprintDocument1_PrintPage(ByValsender As
Object, _
ByVale AsPrintPageEventArgs)
DimcharactersOnPage As Integer = 0
DimlinesPerPage As Integer = 0
' Sets the value of charactersOnPage to the
number of characters
' of stringToPrint that will fit within the
bounds of the page.
e.Graphics.MeasureString(stringToPrint,Me.Font,
e.MarginBounds.Size, _
StringFormat.GenericTypographic,
charactersOnPage, linesPerPage)
' Draws the string within the bounds of the page
e.Graphics.DrawString(stringToPrint,Me.Font,
Brushes.Black, _
e.MarginBounds,
StringFormat.GenericTypographic)
' Remove the portion of the string that has been
printed.
stringToPrint =
stringToPrint.Substring(charactersOnPage)
' Check to see if more pages are to be printed.
e.HasMorePages = stringToPrint.Length > 0
End Sub
C#
Copier le code
private void printDocument1_PrintPage(object sender,
PrintPageEventArgs e)

{
int charactersOnPage = 0;
int linesPerPage = 0;

// Sets the value of charactersOnPage to the
number of characters
// of stringToPrint that will fit within the
bounds of the page.
e.Graphics.MeasureString(stringToPrint,
this.Font,
e.MarginBounds.Size,
StringFormat.GenericTypographic,
outcharactersOnPage, outlinesPerPage);
// Draws the string within the bounds of the page
e.Graphics.DrawString(stringToPrint,this.Font,
Brushes.Black,
e.MarginBounds,
of 00

Leave a Comment

You must be to leave a comment.
Submit
Characters: ...
You must be to leave a comment.
Submit
Characters: ...