Bonjour,
je voulais savoir si il existe en C#, une instruction pour pouvoir imprimer un document et/ou une série de ligne dans un programme console.
Merci de vos réponse à l'avance.
Bonjour,
je voulais savoir si il existe en C#, une instruction pour pouvoir imprimer un document et/ou une série de ligne dans un programme console.
Merci de vos réponse à l'avance.
ci-dessous un exmple pour imprimer un fichier txt sous une application console:
class printerClass
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67 using System; using System.Collections.Generic; using System.Text; using System.Drawing; using System.IO; using System.Drawing.Printing; namespace ConsoleApplication1 { class printerClass { private StreamReader streamToPrint; private Font printFont; public void printDoc() { streamToPrint = new StreamReader ("C:\\toto.txt"); try { printFont = new Font("Arial", 10); PrintDocument pd = new PrintDocument(); pd.PrintPage += new PrintPageEventHandler (this.pd_PrintPage); pd.Print(); } finally { streamToPrint.Close(); } } private void pd_PrintPage(object sender, PrintPageEventArgs ev) { float linesPerPage = 0; float yPos = 0; int count = 0; float leftMargin = ev.MarginBounds.Left; float topMargin = ev.MarginBounds.Top; string line = null; // Calculate the number of lines per page. linesPerPage = ev.MarginBounds.Height / printFont.GetHeight(ev.Graphics); // Print each line of the file. while (count < linesPerPage && ((line = streamToPrint.ReadLine()) != null)) { yPos = topMargin + (count * printFont.GetHeight(ev.Graphics)); ev.Graphics.DrawString(line, printFont, Brushes.Black, leftMargin, yPos, new StringFormat()); count++; } // If more lines exist, print another page. if (line != null) ev.HasMorePages = true; else ev.HasMorePages = false; } } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 using System; using System.Collections.Generic; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { printerClass pt = new printerClass(); pt.printDoc(); } } }
Merci pour l'information, mais quand je le compile (le programme), il m'indique quatre erreurs.
Erreur 1 Le type ou le nom d'espace de noms 'Drawing' n'existe pas dans l'espace de noms 'System' (une référence d'assembly est-elle manquante*?) C:\Documents and Settings\Denise\Local Settings\Application Data\Temporary Projects\ConsoleApplication1\printerClass.cs 4 14 ConsoleApplication1Erreur 2 Le type ou le nom d'espace de noms 'Drawing' n'existe pas dans l'espace de noms 'System' (une référence d'assembly est-elle manquante*?) C:\Documents and Settings\Denise\Local Settings\Application Data\Temporary Projects\ConsoleApplication1\printerClass.cs 6 14 ConsoleApplication1Erreur 3 Le type ou le nom d'espace de noms 'Font' est introuvable (une directive using ou une référence d'assembly est-elle manquante*?) C:\Documents and Settings\Denise\Local Settings\Application Data\Temporary Projects\ConsoleApplication1\printerClass.cs 13 17 ConsoleApplication1Merci de me répondre.Erreur 4 Le type ou le nom d'espace de noms 'PrintPageEventArgs' est introuvable (une directive using ou une référence d'assembly est-elle manquante*?) C:\Documents and Settings\Denise\Local Settings\Application Data\Temporary Projects\ConsoleApplication1\printerClass.cs 34 50 ConsoleApplication1
P.S. J'utilise Virtuel Studio 2008.
Il faut que tu ajoutes une référence sur la dll System.Drawing
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager