Seite 1 von 1

TXT Datei Drucken

Verfasst: 28.10.2004 14:01
von netfreak
Hallo,
also ich hatte mit dem Drucken einer Text Datei echte Problem als Anfänger und desweg möchte ich ihr mal meinen Code zum Drucken einer txt Datei zur verfügung stellen!

Code: Alles auswählen


Global z.w
z=100
If PrintRequester()

  If StartPrinting("PureBasic Test")
  
    If StartDrawing(PrinterOutput())

      DrawingFont(LoadFont(0, "Arial", 30))
       
      ReadFile(0,"datei.txt")
      
      While Loc()<Lof() 
      zeile$ = ReadString() 
      Locate(100, z) : DrawText(zeile$)
      z + 100
      Wend 
     
      CloseFile(0)
      StopDrawing()
    EndIf
    
    StopPrinting()
  EndIf
EndIf
Bei Fragen einfach Fragen!
Ich hoffe es sind keine Fehler drin wenn doch sagt mir wo!
Ich hoffe es hilft einigen beim Drucken einer TXT datei!

netfreak

Verfasst: 29.10.2004 01:50
von Lars
[c]While Loc()<Lof()[/c] ließe sich eigentlich mit Eof() ersetzen ([c]While Eof(0) = 0[/c]) und die While Schleife könnte man noch einrücken :D

Verfasst: 29.10.2004 16:42
von netfreak
Danke für den Tip beim nächsten mal werde ich dran denken!

Verfasst: 29.10.2004 18:12
von NicTheQuick
Das ist schlecht, wie es so ist.
Erstens wird nicht die DPI-Zahl des Druckers berücksichtigt, so dass man auf hochauflösenden Druckern wohl eine Lupe braucht und zweitens können so lange Zeilen aus dem bild raus gehen.

Verfasst: 29.10.2004 22:45
von netfreak
Dann sage mir doch wie mans besser machen kann oder zeig ein Beispiel!
Ich habe nämlich leider keinen Code im Netz gefunden der das Ausdrucken einer Datei zeigt!

Also wenn du einen besseren Code hast zeig ihn mal bitte.

Verfasst: 30.10.2004 01:43
von NicTheQuick
Ich habe jetzt keinen Code, ich weiß nur das Prinzip.

Mit [c]PrinterPageWidth()[/c] und [c]PrinterPageHeight()[/c] kannst du ja feststellen wie breit und wie hoch eine Seite in Pixeln ist. Jetzt musst du eben deine Schriftgröße darauf anpassen. Du kannst ja zuerst einmal ausrechnen wieviele Pixel in der Breite und in der Höhe einen Zentimeter beschreiben. Da eine DIN A4 Seite 21 x 29,7 cm hat, entsteht dadurch folgende Rechnung:
[c]PixelPerCm_X.f = PrinterPageWidth() / 21
PixelPerCm_Y.f = PrinterPageHeight() / 29,7[/c]
Das heißt, wenn du bei [c]LoadFont()[/c] eine Schrifthöhe von [c]PixelPerCm_Y.f[/c] angibts, sollte der Text auf dem ausgedruckten Blatt ein Zentimeter hoch sein.

Verfasst: 30.10.2004 11:01
von netfreak
Dankefür den Tip ich werde mal sehen wie ichs einbauen kann!