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
Partager