Drucken auf BON-Rolle

Von Ausgaben mit der Gra-Engine über Generatoren bis zum Export in diversen Formaten

Moderator: Moderatoren

Antworten
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Drucken auf BON-Rolle

Beitrag von Rolf Ramacher »

Hallo zusammen,

ich möchte für einen Kunden sog, Fähnchenetikettendrucken. Diese befinden sich auf einer Bonrolle. Ich nutze Xbpprintdialog()

nun erhalten ich den bedruckbaren Bereich asize zurück mit {1016,1006} - das kan doch irgendwie nicht sein. oder muß ich anders vorgehen?

Code: Alles auswählen

IF oPrinter <> NIL 
		oPrinter:setOrientation(XBPPRN_ORIENT_PORTRAIT)
      // Neuen Presentation-Space erzeugen 
      oPS   := XbpPresSpace():new() 
      // Bedruckbarer Bereich auf dem Papier 
      aSize := oPrinter:paperSize() 
      aSize := { aSize[5] - aSize[3],aSize[6] - aSize[4]  } 
		nVon:=30
		nBis:=aSize[2]-100
      oPS:create( oPrinter, aSize, GRA_PU_LOMETRIC ) 
		aPos:={nVon,nbis}
      oPrinter:startDoc()
msgbox(var2lchar(asize))
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Drucken auf BON-Rolle

Beitrag von brandelh »

Hi,

wie groß ist denn dein Etikett tatsächlich ?

Notfalls einfach selbst die Breite und Länge beachten (bei den Druckbefehlen).
ein NewPage() oder das Ende sollten dann richtig vorschieben.
Gruß
Hubert
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Drucken auf BON-Rolle

Beitrag von Rolf Ramacher »

Hallo zusammen,

hier bin ich noch nicht weiter gekommen. Er druckt immer noch nicht. Das Ausrichten des Druckers brachte bisher auch keine Verbesserung . (automisches Erkennen, welche Etiketten eingelegt sind.)

so sieht der Code aus:

Code: Alles auswählen

#include "Gra.ch"
#include "Xbp.ch"
#include "Appevent.ch"
#include "Inkey.ch"
#include "xbpdev.ch"
#include "Font.ch"

#pragma Library( "XppUI2.lib" ) 
#Define CRLF Chr(13)+Chr(10)

Proc Main
	Local aPos:={}, nVon:=0, nBis:=0
   oDlg := XbpPrintDialog():new() 

   // Druckausgabe nicht standardmäßig in Datei umleiten 
   oDlg:enablePrintToFile := .f. 
   oDlg:printToFile       := .f. 
	oDlg:pageRange 		  := {1,99 }
   oDlg:create() 

   // Konfiguriertes Drucker Objekt erzeugen 
   oPrinter := oDlg:display() 
   oDlg:destroy() 

   IF oPrinter <> NIL 
		oPrinter:setOrientation(XBPPRN_ORIENT_PORTRAIT)
      // Neuen Presentation-Space erzeugen 
      oPS   := XbpPresSpace():new() 
      // Bedruckbarer Bereich auf dem Papier 
      aSize := oPrinter:paperSize() 
msgbox(var2lchar(aSize))
      aSize := { aSize[5] - aSize[3],aSize[6] - aSize[4]  } 
		nVon:=30
		nBis:=aSize[2]-100
      oPS:create( oPrinter, aSize, GRA_PU_LOMETRIC ) 
		aPos:={nVon,nbis}
      oPrinter:startDoc()
msgbox(var2lchar(asize))
msgbox(var2lchar(aPos))

			oFont := XbpFont():new():create( "18.Courier New" )
			GraSetFont( oPs, oFont )

	      GraStringAt( oPS, aSize , "test" ) 
      oPrinter:endDoc() 
      // Aufräumen 
      oPrinter:destroy() 
      oPS:destroy() 

   ENDIF 
	
Return

Ich habe schon verschiedene Position für GrastringAt versucht. aber nichts. :setorientateion() habe ich ebenfalls mal ausgesternt.
auch nix. Hat hier jemand irgendeine Idee ??
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Drucken auf BON-Rolle

Beitrag von brandelh »

Hallo,

falls es sich tatsächlich um einen Windowsdrucker mit Druckertreiber handelt,
könnte es daran liegen, dass Xbase++ blöderweise links unten 0,0 hat.

Um von Oben links zu drucken musst du den Y Wert auf die Höhe - Rand setzen ... sowas machst du mit nBis,
aber unten wird nur auf ... GraStringAt( oPS, aSize , "test" ) gedruckt.
sollte es nicht besser GraStringAt( oPS, {nVon,nBis} , "test" ) lauten ?

Eventuell muss die Seite auch gekippt werden ...
Gruß
Hubert
Antworten