In Windows-Applikation einfachen Text auf Drucker ausgeben



  • Naja, es gehat auch einfacher... wenn man nur (raw) Text drucken will, dann kann man dies auch so machen:

    http://msdn.microsoft.com/en-us/library/dd162959(VS.85).aspx

    ABER: "RAW" durch "TEXT" ersetzen!



  • Herzlichen Dank, ich habe es hinbekommen.



  • der drucker zeichnet bei mir die /t mit auf das blatt (in form von quadraten) und manchmal sind zwischen den strings, zeichen/buchstaben, die zwar auf dem blatt zu sehen sind in meinem editor jedoch nicht, sie treten meistens auch dann auf wo die Tabs im Array definiert sind.
    habt ihr auch schon mal so ein problem gehabt, wenn ja, wie habt ihr das denn gelöst?

    Danke

    Das problem entsteht wohl dadurch das ich meine arrays nicht resete sondern einfach überschreibe,leider erkennt er das beim "tab" wohl irgendwie nicht richtig...



  • oder gibt es bei der ausgabe im textfeld wieder den unterschied, statt \n dann \r\n auch bei \t dann \r\t ?
    nur das \r\t schon mal nicht klappt 😞
    also wenn ich statt den tabs leerzeichen mach is das problem behoben aber das ist zu viel anpassarbeit, das muss doch mit tabs auch gehen oder?



  • noPeil schrieb:

    ..das muss doch mit tabs auch gehen oder?

    Mit dem PDF-Creator habe ich keine Probleme, '\t' und '\n' funktonieren einwandfrei.


  • Mod

    Nein es geht nicht mit tabs, weil dies Sonderzeichen sind, die in der Interpretation jedem Gerät freistehen.

    Lass die Finger von der RAW Ausgabe.
    Es gibt genug Engines die das locker abbilden.



  • Lass die Finger von der RAW Ausgabe.
    Es gibt genug Engines die das locker abbilden.

    darf ich auch fragen welche engines du meinst? oder wie ich jetzt vlt mein problem lösen könnte 🙂



  • Abgesehen davon das Herr Richter natürlich recht hat ;), könntest du dir auch einfach ne Funktion schreiben die die deine Tabs automatisch mit Leerzeichen ersetzt?



  • jawohl das ist eine gute idee, aber wieso die finger von raw ausgaben lassen ?


  • Mod

    1. Weil z.B. ein Postscript Drucker hier garantiert nur Mist ausgibt.
    2. Andere Drucker geben gar nichts aus, weil kein "Default-Font" per se existiert.
    3. Weil Du keine Ahnung hast ob ein Fixed-Font oder proportional-Font engestellt wird.
    4. Weil Du keine Kontrolle über die Seitengröße hast und keine Ahnung wie groß die Schrift wirklich ist.
    5. Weil Du nicht weißt wann am rechten Rand ein Umbruch erfolgt und ob überhaupt.
    6. Weil Du unwissend Steuercode an den Drucker senden könntest die zum Beispiel zum "explodieren der Farbkartusche" 🤡 führen...

    Wieviele Gründe möchtest Du noch?

    Hast Du schon mal in Codeproejct nachgesegen?
    http://www.codeproject.com/KB/printing/

    BTW: Ich benutze die MFC und habe diese Klassen mir ausgebaut:
    http://www.codeproject.com/KB/printing/printingmadeeasy.aspx



  • Weil anscheinend nicht alle Geräte mit Steuerzeichen gleich umgehen. Wie geschrieben, mit einem "echten" Drucker habe ich es nicht probiert.
    Also entweder sich an der Antwort von Probe-Nutzer (inkl. link) ausrichten oder bei Codeproject einmal ein wenig suchen.



  • das langt an gründen.
    aber das heißt hoffentlich nicht, dass ich mir in meinem Texteditor auch keine "raw" oder "strings" ausgeben sollte, oder? also ich muss diese daten anscheinend umkonvertieren bevor ich sie an den drucker sende, mein ganzes programm ist nämlich darauf aufgebaut dass die strings im editor erscheinen so wie sie sind.

    ich dachte außerdem mfc -klassen können nur mfc projecten zugefügt werden


  • Mod

    Ja: MFC Klassen können nur MFC Projekten hinzugefügt werden. Du hast mich gefragt was ich verwende. Ichhabe geantwortet. D.h. nicht, dass es für Dich nutzbar ist 🕶

    Mit Garantie erscheinen Ausgaben im Text/Raw Modus nicht so wie in Deinem Editor, denn Duhast auch keine Ahnungh welche Umlaute und Zeichnsatzkonvertierungen benutzt werden.

    Geh den DC Mode. D.h. gib die Daten so aus, wie Du es mit DrawText/TextOut auf GDI und Bildschirm sonst auch tust.



  • hallo!
    sollte man ernsthaft keine roharrays an den drucker senden? bis auf die sonderzeichen sollte es da doch keine probleme geben?
    und wie hast du das problem mit den tabs jetzt gelöst noPeil? also ich meine ohne mfc project ist das unmöglich 🙂



  • Hi!

    Ich habe ein Problem bei der konvertierung in pdf mit Adobe Acrobat.

    Codebsp.:

    if(iLine==0)
    {
    TextOut(pd.hDC,150,ychariLine,string,strlen(string))
    TextOut(pd.hDC,2500,ychar
    iLine,string2,strlen(string2))
    }

    Der 2te string wird mit TextOut nicht an der Stelle 2500 (x-parameter) postioniert sondern ist nach links verschoben.

    dies geschieht nur bei der adobe original version, bei freewareversionen funktioniert diese methode einwandfrei.

    Kann mir jemand erklären wie ich das beheben kann


Anmelden zum Antworten