Feedback

C# - Print Txt - Text-Datei drucken

Veröffentlicht von am 02.08.2014
(0 Bewertungen)
Achtung: Es gibt das Problem, das zu lange Zeilen nicht einfach auf der nächsten Seite fortfahren, sondern abgeschnitten werden!!!
Ich versuche es zu beheben!
GFU-Schulungen  [Anzeige]

ASP.NET 2.0 und 3.5

Dieser Kurs vermittelt Ihnen alle Erweiterungen von Microsoft ASP.NET 2.0. Zu diesen zählen u. a. Data Bindung, Master Pages, und Security.

XML und .NET Überblick

Um auf dem neuesten Wissensstand zu sein, sollten Sie unser aktuelles ASP .NET Komplett Seminar belegen.
Nach dem Seminar kennen Sie die wichtigsten Strömungen in der Software-Technologie

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Drawing;
using System.Drawing.Printing;
using System.Windows.Forms;

namespace DocumentPrint
{
    public class PrintTxt
    {
        public Font font;
        public string path;
        public PrintDocument pd;
        private StreamReader sr;

        public PrintTxt(string p)
        {
            path = p;
            font = new Font("Verdana", 11);
            pd = new PrintDocument();
        }

        public PrintTxt(string p, Font f)
        {
            path = p;
            font = f;
            pd = new PrintDocument();
        }
        
        public void Print()
        {
            try
            {
                sr = new StreamReader(path);
                PrintDocument pd = new PrintDocument();
                pd.PrintPage += new PrintPageEventHandler(this.PrintTextFileHandler);
                pd.Print();
                if (sr != null)
                    sr.Close();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public bool ShowDialog()
        {
            try
            {
                PrintDialog pdia = new PrintDialog();
                if (pdia.ShowDialog() == DialogResult.OK)
                {
                    pd.PrinterSettings = pdia.PrinterSettings;
                    return true;
                }
                else
                {
                    return false;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        private void PrintTextFileHandler(object sender, PrintPageEventArgs ppe)
        {
            try
            {
                Graphics g = ppe.Graphics;
                float linesPerPage = 0;
                float yPos = 0;
                float leftMargin = ppe.MarginBounds.Left;
                float topMargin = ppe.MarginBounds.Top;
                string line = null;
                linesPerPage = ppe.MarginBounds.Height /
                font.GetHeight(g);
                for (int i = 0; i < linesPerPage && ((line = sr.ReadLine()) != null); i++)
                {
                    yPos = topMargin + (i *
                    font.GetHeight(g));
                    g.DrawString(line, font, Brushes.Black, leftMargin, yPos, new StringFormat());
                }
                if (line != null)
                {
                    ppe.HasMorePages = true;
                }
                else
                {
                    ppe.HasMorePages = false;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
    }
}

Abgelegt unter print, drucken, text, datei, file, dialog.

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!