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

[0] Índice de Mensajes

Ir a la versión completa