Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben

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

Geschrieben

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:

Geschrieben
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...

Geschrieben

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)

Geschrieben
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.
Geschrieben
leider bekomme ich das immer noch nicht hin.
Das ist keine ausreichende Fehlerbeschreibung. Zeig den relevanten Code und die Fehlermeldung, falls du eine bekommst. Falls nicht, beschreibe, wie sich das beobachtete vom gewünschten Verhalten unterscheidet.
Geschrieben

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

Geschrieben

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.

Geschrieben
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

Geschrieben

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

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...