TXT Datei Drucken

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
netfreak
Beiträge: 91
Registriert: 23.10.2004 18:30
Kontaktdaten:

TXT Datei Drucken

Beitrag 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
mfg
netfreak
Benutzeravatar
Lars
Beiträge: 347
Registriert: 31.08.2004 23:53
Wohnort: Shanghai
Kontaktdaten:

Beitrag 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
Lars
The only problem with troubleshooting is, that sometimes the trouble shoots back.
P4 2,6Ghz, 512MB RAM, GeForce 6200, WinXP Pro SP2, PB V3.94
netfreak
Beiträge: 91
Registriert: 23.10.2004 18:30
Kontaktdaten:

Beitrag von netfreak »

Danke für den Tip beim nächsten mal werde ich dran denken!
mfg
netfreak
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8677
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Beitrag 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.
Bild
netfreak
Beiträge: 91
Registriert: 23.10.2004 18:30
Kontaktdaten:

Beitrag 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.
mfg
netfreak
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8677
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Beitrag 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.
Bild
netfreak
Beiträge: 91
Registriert: 23.10.2004 18:30
Kontaktdaten:

Beitrag von netfreak »

Dankefür den Tip ich werde mal sehen wie ichs einbauen kann!
mfg
netfreak
Antworten