Wechsel von Hoch- auf Querformat

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

Moderator: Moderatoren

Antworten
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2821
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 94 Mal
Danksagung erhalten: 13 Mal

Wechsel von Hoch- auf Querformat

Beitrag von georg »

Guten Morgen,


im Rahmen einer Liste möchte ich während des Drucks von Hoch- auf Querformat und zurück wechseln. Der Wechsel geschieht jeweils, wenn eine Seite gedruckt ist, bevor die nächste Seite begonnen wird.

Ich habe das testweise einmal so dargestellt:

Code: Alles auswählen

FUNCTION FormatTest()
	Local aSize
	Local cPrinter
	Local oPrinter, oPS

	oPrinter := XbpPrinter():new()
	cPrinter := "Adobe PDF"
	oPrinter:create(cPrinter)
	oPS := XbpPresSpace():new()
	aSize := oPrinter:paperSize()
	aSize := {aSize[5] - aSize[3], aSize[6] - aSize[4]}
	oPS:create(oPrinter, aSize, GRA_PU_LOMETRIC)

	oPrinter:startDoc()
	oPrinter:startPage()
	GraStringAt(oPS, {100, 100}, "Das ist ein Test")
	oPrinter:endPage()

	/*
	aSize := ASort(aSize, , , .T.)
	oPS:setPageSize(aSize, GRA_PU_LOMETRIC)
	oPrinter:setOrientation(XBPPRN_ORIENT_LANDSCAPE)
	oPS:configure()
	*/

	oPrinter:startPage()
	GraStringAt(oPS, {100, 100}, "Das ist ein Test")
	oPrinter:endPage()

	oPrinter:endDoc()

RETURN (.T.)
Das funktioniert, beide Seiten werden im Hochformat gedruckt. Nun entferne ich die Kommentare, drehe also die Seitengrösse und die Orientierung, drucke und ... bekomme die erste Seite mit Text, die zweite Seite ist leer, aber im Querformat.

Nun bin ich (endlich mal) sprachlos und höre, was Ihr mir dazu sagt. #-o
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Wechsel von Hoch- auf Querformat

Beitrag von AUGE_OHR »

georg hat geschrieben: Di, 29. Aug 2017 11:04

Code: Alles auswählen

	oPS := XbpPresSpace():new()
	... 
	oPS:create(oPrinter, aSize, GRA_PU_LOMETRIC)

	oPS:setPageSize(aSize, GRA_PU_LOMETRIC)
        ...
	oPS:configure()
Nun bin ich (endlich mal) sprachlos und höre, was Ihr mir dazu sagt. #-o
bei einem o:configure() gehen IMHO alles "verloren" was du vorher gesetzt hattest.

ich würde es so probieren

Code: Alles auswählen

oPS:configure(oPrinter, aSize, GRA_PU_LOMETRIC)
gruss by OHR
Jimmy
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2821
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 94 Mal
Danksagung erhalten: 13 Mal

Re: Wechsel von Hoch- auf Querformat

Beitrag von georg »

Hallo, Jimmy -


habe ich so mal umgesetzt:

Code: Alles auswählen

	aSize := ASort(aSize, , , .T.)
//	oPS:setPageSize(aSize, GRA_PU_LOMETRIC)
//	oPrinter:setOrientation(XBPPRN_ORIENT_LANDSCAPE)
	oPS:configure(oPrinter, aSize, GRA_PU_LOMETRIC)
Ergebnis: zwei Seiten im Hochformat. M.E. muss das :setOrientation() da schon rein, damit der Drucker versteht, dass er das Papier um 90° gedreht bedrucken soll.

Dann habe ich den Code so erweitert:

Code: Alles auswählen

	aSize := ASort(aSize, , , .T.)
//	oPS:setPageSize(aSize, GRA_PU_LOMETRIC)
//	oPrinter:setOrientation(XBPPRN_ORIENT_LANDSCAPE)
	oPS:configure(oPrinter, aSize, GRA_PU_LOMETRIC)
	oPrinter:setOrientation(XBPPRN_ORIENT_LANDSCAPE)
Und damit hat es funktioniert. Danke für Deinen Hinweis, hat mich auf die richtige Spur gebracht.
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Antworten