Druck einer Datei [ERLEDIGT]

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:

Druck einer Datei [ERLEDIGT]

Beitrag von Rolf Ramacher »

Hallo zusammen,

ich muß eine mit clipper erstelle DruckDatei auf einen Drucker schicken, über xbpprintdialog. der der Drucker kein Parallel-anschluss mehr hat.
Lade ich den Inhalt der Datei in Word, kommen die Informationen raus. aber verschoben, sodaß man damit nichts mehr anfangen kann.

Nun habe ich es mit GrastringAt versucht - kommt gar nichts leeres Blatt. Kann mir jemand auf die Srpünge helfen

Code: Alles auswählen

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

#pragma Library( "XppUI2.lib" ) 

Function ListeDrucken()
	Local cZwText:="", aPos:={}

	If file("hart.lit")
		cZwText:=memoread("hart.lit")

	   oDlg := XbpPrintDialog():new() 
	
	   oDlg := XbpPrintDialog():new() 
	   // Druckausgabe nicht standardmäßig in Datei umleiten 
	   oDlg:enablePrintToFile := .f. 
	   oDlg:printToFile       := .f. 
	   oDlg:create() 
	
	   // Konfiguriertes Drucker Objekt erzeugen 
	   oPrinter := oDlg:display() 
	   oDlg:destroy() 
	   IF oPrinter <> NIL 
			oPrinter:setOrientation(XBPPRN_ORIENT_PORTRAIT)
	      oPS   := XbpPresSpace():new() 
	      // Bedruckbarer Bereich auf dem Papier 
	      aSize := oPrinter:paperSize() 
	      aSize := { aSize[5] - aSize[3],aSize[6] - aSize[4]  } 
	      oPS:create( oPrinter, aSize, GRA_PU_LOMETRIC ) 
			aPos:={0,aSize[2]-50 }

			oPrinter:Startdoc()
				oFont := XbpFont():new():create( "18.Courier New" )
				GraSetFont( oPs, oFont )
		      GraStringAt( oPS, aPos , cZwText ) 

			oPrinter:Enddoc()
		EndIf
	Endif
Return Nil
Zuletzt geändert von Rolf Ramacher am Mi, 01. Feb 2012 15:23, insgesamt 1-mal geändert.
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2823
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: Druck einer Datei

Beitrag von georg »

Hallo, Rolf -


hast Du es mal mit einem Font versucht, der nicht proportional ist?

Oder in Word mal Lucida Console zum Anzeigen verwendet?

Es dürfte am (standardmässig) proportionalen Font liegen.


Gruss,

Georg
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
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: Druck einer Datei

Beitrag von Rolf Ramacher »

an der Font liegt es nicht. habe es bei Word auch mit mit Lucida Console versucht. - nichts gleiches ergebnis. mit der GrastrinAt - methode
dürfte ja wohl Courier New ja wohl Ok sein.
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: Druck einer Datei

Beitrag von UliTs »

Hallo Rolf,

du hast bei

Code: Alles auswählen

oFont := XbpFont():new():create( "18.Courier New" )
den Presentation Space nicht angegeben!

Probier mal

Code: Alles auswählen

oFont := XbpFont():new(oPS)
oFont:create( "18.Courier New" )
Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Druck einer Datei

Beitrag von brandelh »

Hast du Druckersteuerzeichen in der Datei oder ist sie nur OEM/ANSI Text, der auf den Drucker muss ?
bei ersterem müssen die raus wenn du GraStringAt() nutzen willst.

Ansonsten kann ich dir auch meine Druckerklasse empfehlen, dort habe ich neben :PrintText() auch :say(...) als Methode eingebaut,
mit der man @ say Druckausgaben einfach umstellen kann. Hier das Druckbeispiel, das man leicht ändern könnte um z.B.
Die Datei Zeilenweise einzulesen und auszudrucken:

Code: Alles auswählen

*#### ANSI .t. äöü ÄÖÜ ß !!!!
#include "Gra.ch"
#include "Xbp.ch"
#include "Common.ch"
#include "Appevent.ch"
#include "Font.ch"
#include "xbpdev.ch"


*---------------- Fonts nur einmal erzeugen - create fonts only once ------

procedure main
local oHBPrinter, nRow, nCol, nCPI, nFont

SET CHARSET TO ANSI

*    nur für Tests - only for debugging

#ifdef __WIN32__
   set alternate to log.txt
#else
   set alternate to log2.txt
#endif
set alternate on


? "Test_SAY.EXE - Printertest"
oHBPrinter := HBPrinter():New():create()
if oHBPrinter:IsPrinterError()             // Fehler verhindern, avoid errors
   ?
   ? "Standarddrucker ist nicht verfügbar !"
   ? "Standardprinter is not ready !"
   ?
   ? "Status: ",oHBPrinter:printerStatus(),"=",cPrinterStatus(oHBPrinter:printerStatus())
   ?
   ?
   wait
else

   nFont := 1

   nCPI  := { 10, 12, 17, 10 }[nFont]

   // The fonts are not exactly the same size, and may depend on the printer
   // or printersetting (:setFontMode( [<nMode>] )
   // Die Fontgröße sind nicht genau gleich. Außerdem können Sie vom
   // Druckermodell bzw. der Druckereinstellung abhängen (:setFontMode( [<nMode>] )

   // oHBPrinter:setFontMode(XBPPRN_FONTMODE_GRAPHIC)
   oHBPrinter:addFont("12.Courier New" ) // -> 10CPI
   oHBPrinter:addFont("10.Courier New" ) // -> 12CPI
   oHBPrinter:addFont(" 7.Courier New" ) // -> 17CPI
   oHBPrinter:addFont("12.Verdana" )     // why not, but don't use Blanks to format.

   oHBPrinter:SetFont(nFont)
   oHBPrinter:StartDoc("SAY Print")

   for nRow := 1 to 70
     do case
       case nRow == 7
         for nCol := 1 to 9
             oHBPrinter:say(nRow,nCol*10,nCol,,10)
         next
       case nRow == 8
         oHBPrinter:say(nRow,1,"         1         2         3         4         5         6         7         8         9",,nCPI)
       case nRow == 9
         for nCol := 1 to 9
             oHBPrinter:say(nRow,nCol*10,nCol,,nCPI)
         next
       case nRow == 10
         oHBPrinter:say(nRow,1,"123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-",,nCPI)
       otherwise
         oHBPrinter:say(nRow,11,"Zeile / Row: "+str(nRow,3),,nCPI)
     endcase
   next
   oHBPrinter:say(15,30,oHBPrinter:DevName)
   oHBPrinter:say(16,30,"iiiii")
   oHBPrinter:say(17,30,"mMmmm")
   oHBPrinter:say(19,30,":compoundname")
   oHBPrinter:say(20,30,":nominalPointSize")
   oHBPrinter:say(21,30,":fixed")
   oHBPrinter:say(19,50,oHBPrinter:SetFont():compoundname)
   oHBPrinter:say(20,50,oHBPrinter:SetFont():nominalPointSize)
   oHBPrinter:say(21,50,oHBPrinter:SetFont():fixed)

   oHBPrinter:newPage()
   oHBPrinter:say(15,30,"NewPage()")

   for nRow := 1 to 70
     do case
       case nRow == 9
         oHBPrinter:say(nRow,1,"         1         2         3         4         5         6         7         8         9")
       case nRow == 10
         oHBPrinter:say(nRow,1,"123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-")
       otherwise
         oHBPrinter:say(nRow,11,"Zeile / Row: "+str(nRow,3))
     endcase
   next
   oHBPrinter:EndDoc()

endif

? "END"
inkey(5)


quit


return
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: Druck einer Datei

Beitrag von Rolf Ramacher »

Hi Uli

funkt. auch nicht - leeres Blatt - Hubert - keine Steuerzeichen
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
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: Druck einer Datei [ERLEDIGT]

Beitrag von Rolf Ramacher »

ich heini,

viel einfacher - ich übergebe an Word einfach die Datei und fertig. alles OK
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Antworten