Seite 2 von 2

:-)

Verfasst: 20.10.2006 08:47
von hiltwin
Hallo Thorsten,

vielen Dank für die aufmunternden Worte *ggg*

Ne, ist schon ok. Sind wir ja schon mal zwei der halbwegs gefrusteten. Ich werd erstmal nen Messagerequester zwischenschieben, das der Anwender doch gefälligst den Drucker auf 144 dpi zu polen hat.

Weiterhin hab ich dann zur Lösung des Problems nun noch eine Routine geschrieben, die meine speziellen Ausdrucke fast 100% 1:1 (durch Javascript) in einem HTML-Dokument abbildet. Wer nun unbedingt nicht an seinem Drucker rumschrauben will, kann nun nach HTML exportieren von dort aus ausdrucken :-)

Werde mir gleich auch mal Dein Setup-Programm anschauen und wenn es für meine Belange brauchbar ist, auch verwenden. Hatte bei meiner Erstversion noch Immosetup ...

Frdl. Gruss
Hiltwin

Verfasst: 20.10.2006 10:57
von Falko
Zu den Fonts mit der gleichen ID laden geht, wenn man das StartDrawing...
Stopdrawing direkt nach dem Fontwechsel macht.
Also machste das ganze in zwei Abschnitte. Also für jedes
Wechseln des Fonts den StartDrawingblock erneut auswählen.

Hab zusätzlich DarkDragons Beispiel hinzufefügt. Da bei mir im PDF
nichts angezeigt wurde, habe ich aus 21 dann 2100 genommen.
Auf dem Drucker sieht das dann genau so aus, wie im PDF-Ausdruck.

Code: Alles auswählen

;Drucker sollte auf Hochformat eingestellt sein.
;Sollte man im Querformat drucken wollen muss man die xcm() und ycm() - Werte ebenfalls vertauschen.
;Hier  DarkDragons vergessenes Beispiel zur Druckeranpassung mit aufgeführt.
Procedure.l xcm(x.f)
 result = x * (PrinterPageWidth()/2100) ; 21cm A4
 ProcedureReturn result
EndProcedure

Procedure ycm(x.f)
 result = x * (PrinterPageHeight()/2970) ; 29,7cm A4
 ProcedureReturn result
EndProcedure

If PrintRequester()
  

  If StartPrinting("PureBasic Test")
      
      LoadFont(0, "Arial", 100)
      If StartDrawing(PrinterOutput())
      DrawingFont(FontID(0))
      DrawText(xcm(100),ycm(100),"PureBasic Printer Test")
      StopDrawing()
      
   
      LoadFont(0, "Verdana", 100)
      If StartDrawing(PrinterOutput())
      DrawingFont(FontID(0))
      DrawText(xcm(100),ycm(400),"PureBasic Printer Test 2")
      FrontColor(RGB(100,100,100))
      Box(0,0, xcm(100), ycm(100))
      StopDrawing() 
      
    EndIf
   
    StopPrinting()
  EndIf
  EndIf
 
EndIf

Verfasst: 20.10.2006 11:52
von hiltwin
Hmm :D

Manche Lösungen sind ja soo einfach :-)

Allerdings scheint da ja noch nicht ganz das Konzept, alles in einen Printbefehl zu bringen, hier angewandt worden zu sein.

So wie Locate rausgeflogen ist, hätte das hier ja auch rausfliegen können und bei DrawText integriert werden können ...

Allen ein schönes Wochenende!