CLR: .Net / Mono / Boo / Otros CLR > C#
Imprimir Archivo de Texto
(1/1)
JaviMarciano:
Como se imprime un archivo de texto en c#
Jeysscarr:
Yo lo hice de esta forma para archivos de varias páginas:
Suponiendo que tienes un boton que hace el trabajo que se llama PrintButton
--- Código: C# ---using System;using System.Drawing;using System.IO;using System.Drawing.Printing;using System.Windows.Forms; namespace PrintApp{ public class Form1 : Form { private PrintDocument printDocument1 = new PrintDocument(); private string stringToPrint; private void LeerArchivo() { string docName = "archivo.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(); } } private void printDocument1_PrintPage(object sender, PrintPageEventArgs e) { int charactersOnPage = 0; int linesPerPage = 0; e.Graphics.MeasureString(stringToPrint, this.Font, e.MarginBounds.Size, StringFormat.GenericTypographic, out charactersOnPage, out linesPerPage); e.Graphics.DrawString(stringToPrint, this.Font, Brushes.Black, e.MarginBounds, StringFormat.GenericTypographic); stringToPrint = stringToPrint.Substring(charactersOnPage); e.HasMorePages = (stringToPrint.Length > 0); } private void printButton_Click(object sender, EventArgs e) { LeerArchivo(); printDocument1.Print(); } [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } }}
La funcion LeerArchivo hace lo necesario para leer los caracteres y dibujarlos en una "Hoja en blanco" del printdocument--- despues este manda a imprimir la o las hojas... para probar sin impresora... usa un preview
JaviMarciano:
--- Cita de: "Jeysscarr" ---Yo lo hice de esta forma para archivos de varias páginas:
Suponiendo que tienes un boton que hace el trabajo que se llama PrintButton
--- Código: C# ---using System;using System.Drawing;using System.IO;using System.Drawing.Printing;using System.Windows.Forms; namespace PrintApp{ public class Form1 : Form { private PrintDocument printDocument1 = new PrintDocument(); private string stringToPrint; private void LeerArchivo() { string docName = "archivo.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(); } } private void printDocument1_PrintPage(object sender, PrintPageEventArgs e) { int charactersOnPage = 0; int linesPerPage = 0; e.Graphics.MeasureString(stringToPrint, this.Font, e.MarginBounds.Size, StringFormat.GenericTypographic, out charactersOnPage, out linesPerPage); e.Graphics.DrawString(stringToPrint, this.Font, Brushes.Black, e.MarginBounds, StringFormat.GenericTypographic); stringToPrint = stringToPrint.Substring(charactersOnPage); e.HasMorePages = (stringToPrint.Length > 0); } private void printButton_Click(object sender, EventArgs e) { LeerArchivo(); printDocument1.Print(); } [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } }}
La funcion LeerArchivo hace lo necesario para leer los caracteres y dibujarlos en una "Hoja en blanco" del printdocument--- despues este manda a imprimir la o las hojas... para probar sin impresora... usa un preview
--- Fin de la cita ---
buenisimo muchas gracias
JaviMarciano:
otra duda no se puede enviar un archivo de una o sea no agregando linea por linea
porq el archivo que se imprime no tiene el mismo formato que el archivo que tengo almacenado
Navegación
Ir a la versión completa