Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Textbox drucken C#

Empfohlene Antworten

Veröffentlicht

Hallo zusammen,

die Frage is mir bisschen peinlich,

da das meines erachtens noch ein Kinderspiel sein sollte.

Jedenfalls versuche ich den Inhalt einer Textbox zu drucken.

Hab schon alles mögliche versucht, auch das geliebte google kann mir nicht helfen.

Ich und mein Ausbilder verzweifeln an dieser vermeitlich symplen Aufgebe.

Ich hoffe Ihr könnt mir helfen.

Danke

kannst es so machen:

public void PrintText(string txt)

{

File.AppendAllText("test.txt",txt,Encoding.ASCII);

Process process = new Process();

try

{

process.StartInfo.UseShellExecute = true;

process.StartInfo.CreateNoWindow = true;

process.StartInfo.FileName = "test.txt";

process.StartInfo.Verb = "Print";

process.Start();

process.EnableRaisingEvents = true;

process.Close();

}

catch (Exception ex) { Console.WriteLine(ex.StackTrace); }

}

er nimmt den Drucker den du als standarddrucker gewählt hast...sollte eig funktionieren ..kann aber auch sein das bei : process.StartInfo.FileName = "test.txt"; nur test.txt nicht reicht sondern der komplette pfad her muss..habs aus einem programm von mir kopiert und hier bissl angepasst

Jedenfalls versuche ich den Inhalt einer Textbox zu drucken.

Hab schon alles mögliche versucht, auch das geliebte google kann mir nicht helfen.

Ich und mein Ausbilder verzweifeln an dieser vermeitlich symplen Aufgebe.

Ich weiß zwar nicht mit was Du google gefüttert hast, aber die Suche nach "drucken c#" hat als 2. Treffer diesen Link ausgespuckt :rolleyes:

Ich weiß zwar nicht mit was Du google gefüttert hast, aber die Suche nach "drucken c#" hat als 2. Treffer diesen Link ausgespuckt :rolleyes:

unter drucken versteh ich das so mit papier und drucker und ******e teuer wenn tinte alle und das was der da in deinem beispiel macht ist nichts weiter als mit den graphics irgendwas irgendwo hinzuzeichnen...

Vielen Dank für eure Hilfe,

leider bekomme ich das immer noch nicht hin.

Nur so am Rande,

ich bin Umschüler im 1. Jahr und erst vor 2Wochen Anwender geworden.

Ich verstehe zwar den Quelltext wenn er ausgeführt wird,

leider bekomm ichs da noch selten hingebogen.

Entweder fehlt mir eine using-Direktive,

oder ich bekomme die Textbox nicht eingebunden (bzw. meist beides)

unter drucken versteh ich das so mit papier und drucker und ******e teuer wenn tinte alle
Tja, das alles versteckt das Betriebssystem aber vor dir, damit du dein Programm nicht an zehntausende Kombinationen von Druckermodell und Anschlussart anpassen musst. Außer natürlich, man ist "Hardcodecoder" und macht so etwas gern ;)

und das was der da in deinem beispiel macht ist nichts weiter als mit den graphics irgendwas irgendwo hinzuzeichnen...
Das ist genau das, was zum Drucken nötig ist.

aber in seinem beispiel wird ja nur gezeichnet, für mich ist nicht ersichtlich daswirklich nen druckauftrag gestartet wird

Ich hab jetz was gefunden wo ich mich langsam einlesen kann.

Das Problem bei einem Testdruck einer leeren Seite

PrintDocument printDoc = new PrintDocument();

printDoc.Print();

ist wieder die Fehlermeldung

Der Typ- oder Namespacename "PrintDocument" konnte nicht gefunden werden. (Fehlt eine Using-Direktive oder ein Assemblyverweis?)

Ok nun geht es.

Ich glaub ich darf noch so einiges lernen bevor ich sowas mal alleine coden kann.

3 zeilen und ich hab solche Probleme...

Noch mals 1000 Dank,

das mit der Textbox bekomm ich hoffentlich alleie hin.

unter drucken versteh ich das so mit papier und drucker und ******e teuer wenn tinte alle und das was der da in deinem beispiel macht ist nichts weiter als mit den graphics irgendwas irgendwo hinzuzeichnen...

Du scheint dich scheinbar noch nicht alzusehr mit dem printen im .NET Framework auseinander gesetzt zu haben.

Die Lösung, welche du dem TE gepostet hast ist nicht die beste.

Warum?

Du selbst kümmerst dich nicht um das printen und kannst somit nur den Content übergeben, jedoch nicht dessen Formatierung oder Positionierung beeinflussen.

Wenn man aber im .NET selbst einen Druckauftrag erstellen möchte, nutzt man am besten das bereits erwähnte PrintDocument.

Verglichen deiner Lösung ist es jedoch bei weitem nicht so einfach, da man den Inhalt der zu drucken Seite selbst Positionieren und Zeichnen lassen muss.

(Das geschieht mit dem ebenfalls bereits erwähnten System.Drawing Namespace).

Hier ein kleines Beispiel aus der MSDN:



using System;

using System.IO;

using System.Drawing;

using System.Drawing.Printing;

using System.Windows.Forms;


 public class PrintingExample 

 {

     private Font printFont;

     private StreamReader streamToPrint;

     static string filePath;



     public PrintingExample() 

     {

         Printing();

     }


     // The PrintPage event is raised for each page to be printed.

     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) ;


         // Iterate over the file, printing each line.

         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;

     }


     // Print the file.

     public void Printing()

     {

         try 

         {

            streamToPrint = new StreamReader (filePath);

            try 

            {

               printFont = new Font("Arial", 10);

               PrintDocument pd = new PrintDocument(); 

               pd.PrintPage += new PrintPageEventHandler(pd_PrintPage);

               // Print the document.

       [B]pd.Print();[/B]    //Wie du siehst wird hier der Printbefehl ausgeführt.

            } 

            finally 

            {

               streamToPrint.Close() ;

            }

        } 

        catch(Exception ex) 

        { 

            MessageBox.Show(ex.Message);

        }

     }


     // This is the main entry point for the application.

     public static void Main(string[] args) 

     {

        string sampleName = Environment.GetCommandLineArgs()[0];

        if(args.Length != 1)

        {

           Console.WriteLine("Usage: " + sampleName +" <file path>");

           return;

        }

        filePath = args[0];

        new PrintingExample();

     }

 }

lg

Gateway

das ich mcih in .net mit dem printen noch nicht so aus kenne ist richtig. Weshalb mir auch das PrintDoc spanisch vorkam als ich das im zusammenhang mit graphics sah.

Das mein beispiel nicht sonderlich perfekt ist, ist mir klar, aber dennoch für sein beispiel ausreichend, da er ja bloß den inhalt der textbox drucken will.

Sobald er jedoch formatierungen vornehmen will ists schonwieder ungeignet ^^.. halt quick and dirty lösung

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.