Druck grösser als A4 quer

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

Moderator: Moderatoren

Antworten
kuhno
UDF-Programmierer
UDF-Programmierer
Beiträge: 54
Registriert: Sa, 07. Jan 2006 17:30
Wohnort: Braunschweig
Kontaktdaten:

Druck grösser als A4 quer

Beitrag von kuhno »

Hallo zusammen,

heute mal ein (vermutlich) triviales Problem.

Ich drucke aus einer Listbox, die einen horizontalen Rollbalken hat. Das funktioniert auch soweit ganz gut. Leider ist der Ausdruck, bei automatichem Landscape breiter als das Papier (wären also 2 Seiten nebeneinander).

Leider ist nach einer Seite schluss mit druck. Es sollte so wie bei Excel laufen. Wenn Seite breiter als Papier, dann neue Seite.

In der Papier höhe klappt das auch. Da passt das Programm selbst auf. Bei der Breite der Tabelle habe ich nix gefunden.

Gibts da irgend einen Tipp?

Gruß
Manfred
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:

Beitrag von brandelh »

Hi,

wie druckst du denn ?

Mit dem XbpPrinter musst du doch eh Formatieren und Druckanweisungen geben, dabei musst du dann halt die 2. Seite mit berücksichtigen.

Automatisch geht da nichts.
Gruß
Hubert
kuhno
UDF-Programmierer
UDF-Programmierer
Beiträge: 54
Registriert: Sa, 07. Jan 2006 17:30
Wohnort: Braunschweig
Kontaktdaten:

Beitrag von kuhno »

Hallo brandelh,

ne 2te Steie ist kein Problem. Nur was mach ich, wenn die Zeilenlänge länger als das Papier breit ist? Nehme ich einen andern Zeichensatz, z.B. igendwas mit condensed oder wie kriege ich die Zeilenlänge in den Griff?

Gruß
Manfred
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:

Beitrag von brandelh »

Hi,

Excel schneidet einfach alles ab (das geht überrigens automatisch, nur weiß man nicht genau wo was abgeschnitten wurde) was zu lange ist und druckt das auf der 2. Seite. Ob dies für dich OK ist weiß ich nicht.

GraQueryTextBox( [<oPS>], <cString> ) --> aPoints

gibt prinzipiell die nötige Drucklänge bei aktueller Schrift zurück.
In meiner Druckerklasse kannst du bei der Methode :PrintMemo() nachsehen, wie man einen zu langen Text bei einem Blank aufspaltet (zuerst ermitteln bei welchem ...) und dann einzeln z. B. für Blocksatz druckt.

Natürlich kann man auch eine deutlich kleinere Schriftart (10 oder 8 Punkt) statt der üblichen 12 Punkt Schrift wählen (wir reden doch von XbpPrinter oder ? ) .. ob das reicht muss man dann ermitteln.
Gruß
Hubert
kuhno
UDF-Programmierer
UDF-Programmierer
Beiträge: 54
Registriert: Sa, 07. Jan 2006 17:30
Wohnort: Braunschweig
Kontaktdaten:

Beitrag von kuhno »

Hallo Hubert,

ja, wir reden von XbpPrinter.
Excel schneidet einfach alles ab (das geht überrigens automatisch, nur weiß man nicht genau wo was abgeschnitten wurde) was zu lange ist und druckt das auf der 2. Seite. Ob dies für dich OK ist weiß ich nicht.
Diese Option wäre durchaus OK.

Ich werde es aber doch wohl mit ner kleineren Schriftart versuchen.

Gruß
Manfred
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:

Beitrag von Rolf Ramacher »

Hi Manfred,

wie wäre es, wenn du

oPrinter:orientation(PXBPPRN_ORIENT_LANDSCAPE)

vorgibst ??
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14651
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Beitrag von Jan »

Rolf,

macht er doch schon. Steht in seinem Eingangsposting drin.

Die Problematik ist ja, daß Excel automatisach "sieht", daß der Ausdruck zu breit ist. Man kann das gut erkennen, wenn man die Seite eingerichtet hat oder schon mal gedruckt hat, daß da überall die gestrichelten Linien durchlaufen. "Normal" ist das natürlich nicht, sondern Excel-Spezifisch. Alle anderen MS-Programme machen das ja auch nicht. Ich denke, der Unterschied ist, daß man normalerweise Seitenorientiert arbeitet, Excel aber Spaltenorientiert. Zum Berechnen irgendwelcher Daten ist es erstmal egal oder eher sogar hinderlich, eine feste Seitenbreite einzurichten.

Jan
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: Druck grösser als A4 quer

Beitrag von AUGE_OHR »

hi,
kuhno hat geschrieben: heute mal ein (vermutlich) triviales Problem.
Du "druckst" doch in einen Presspace.
:orientation bedeutet IMHO "drehe um 90"

wenn das also "so" nicht funktioniert würde ich entweder:
a.) versuchen den Presspace "selbst um 90 zu drehen"
b.) aus dem Presspace ein Bitmap machen und dann das um 90 drehen

gruss by OHR
Jimmy
kuhno
UDF-Programmierer
UDF-Programmierer
Beiträge: 54
Registriert: Sa, 07. Jan 2006 17:30
Wohnort: Braunschweig
Kontaktdaten:

Beitrag von kuhno »

Hallo Jimmy,

Versuch macht kluch.

Ich probier das mal aus.

Danke.
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:

Beitrag von brandelh »

Hi,

eigentlich funktioniert die :Orientation schon seit 1.82 oder war es 1.80 ... ?
Ich persönlich verwende in meiner Druckerklasse aber keine Orientation sondern drehe die Fonts selbst, das geht über einen Parameter ... in GraSetAttrString() aus folgenden Gründen:

1. Ältere Versionen von Xbase++ können es nicht
2. Vor 1.90 musste der ganze Druckjob eine Ausrichtung haben.
3. Ich habe nie eine Seite auf der alles gedreht ist (zu unflexibel)
4. Schriften drehen funktioniert mit meiner Druckerklasse sehr einfach.

Was auch immer du machst, dein Programm muss immer eine Druckseite berechnen und dann mit NextPage() ausdrucken. Dein Programm muss errechnen was auf eine und auf welche Seite gedruckt werden kann und dann musst du das so aufteilen. Genauso macht es auch Word oder Excel oder jedes andere Windowsprogramm.
Gruß
Hubert
kuhno
UDF-Programmierer
UDF-Programmierer
Beiträge: 54
Registriert: Sa, 07. Jan 2006 17:30
Wohnort: Braunschweig
Kontaktdaten:

Beitrag von kuhno »

Hallo Hubeert,

Danke für den Hinweis. Ich habe es jetzt mit einem etwas schlanker skalierten Font hinbekommen. Es passt alles auf eine Seite A4 quer drauf. Die Orientierung des Blattes beim Drucker geht auch auf A4 quer. Wenn ich mal wieder Zeit habe, werde ich alle diesen Dinge ausprobieren (und im Programm verbessern). Im Moment fehlt mir wegen Termindruck die Zeit dazu.

Gruß
Manfred
kuhno
UDF-Programmierer
UDF-Programmierer
Beiträge: 54
Registriert: Sa, 07. Jan 2006 17:30
Wohnort: Braunschweig
Kontaktdaten:

Beitrag von kuhno »

Hallo Hubert,

das doppete E in deinem Namen waren zu schnelle Finger. Entschuldigung.

Manfred


Ach ja, hab ich noch nicht gesehen. Danke.
Zuletzt geändert von kuhno am Mi, 19. Dez 2007 15:58, insgesamt 1-mal geändert.
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:

Beitrag von brandelh »

kuhno hat geschrieben:Hallo Hubert,

das doppete E in deinem Namen waren zu schnelle Finger. Entschuldigung.

Manfred
Keine Angst, Tippfehler sind auch mir bekannt ;-)

Aber schau mal bei deinen Beiträgen jeweils oben rechts nach ZITAT kommt da EDIT -> damit kann man eigene Beiträge verbessern ;-)
Gruß
Hubert
kuhno
UDF-Programmierer
UDF-Programmierer
Beiträge: 54
Registriert: Sa, 07. Jan 2006 17:30
Wohnort: Braunschweig
Kontaktdaten:

Beitrag von kuhno »

Hallo Hubert,

Danke für den Hinweis. Den hab ich noch nicht gesehen.

Gruß
Manfred
Antworten