Wechsel von Hoch- auf Querformat

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

Moderator: Moderatoren

Antworten
georg
Foren-Administrator
Foren-Administrator
Beiträge: 2205
Registriert: Fr, 08. Feb 2008 21:29

Wechsel von Hoch- auf Querformat

Beitrag von georg » Di, 29. Aug 2017 11:04

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
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 11426
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: Wechsel von Hoch- auf Querformat

Beitrag von AUGE_OHR » Di, 29. Aug 2017 17:47

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
Foren-Administrator
Foren-Administrator
Beiträge: 2205
Registriert: Fr, 08. Feb 2008 21:29

Re: Wechsel von Hoch- auf Querformat

Beitrag von georg » Di, 29. Aug 2017 21:45

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
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.

Antworten