Dynamisches Zuweisen der Page Layout Size
Olaf Borke
Hallo,wir haben einen Kunden, der sehr gerne noch auf einem Nadeldrucker seine Rechnungen drucken, aber die gleiche Layout-Vorlage auch auf einem Laserdrucker benutzen mächte.
Hier nun meine Frage:
Kann ich die Page Layout Size dynamisch verändern?
Beispiel: Wenn diese Vorlage beim Drucken auf einem Nadeldrucker verwendet wird, dann setze die X- und Y-Werte auf 21 und 30,5. Druckst Du auf Laser, nutze 21 und 29,7.
Oder gibt es eine andere Lösung ?
Danke für Eure Tipps.
Grüße
Olaf
Philipp Knecht
Hallo OlafMach mal im GenerateScript des Dokumentes:
page1.PaperKind = PerpetuumSoft.Reporting.DOM.PaperKind.Folio
hth
Olaf Borke
Hi Philipp,Ok, dann werden aber die Werte für das "Folio" gesetzt (21,59 und 33,02).
Ich muss aber ein anderes Format einstellen.
Wenn ich anstelle von "Folio" "Custom" setze, muss ich auch die x- und y-werte setzen können, oder?
Welche Funktion ist das denn ??
Grüße
Olaf
Philipp Knecht
Hallo OlafJa genau PaperKind Custom und dann die Size alà:
Dim mySize As PerpetuumSoft.Framework.Drawing.Vector = New PerpetuumSoft.Framework.Drawing.Vector(24,50)
page1.Size = mySize
hth
Olaf Borke
Hi Philipp,die dynamische Zuweisung über das Script funktioniert. Haben nur die Werte abwandeln müssen.
Nun aber unser kleines Problem:
Wie erkennen wir, dass auf einen bestimmten Drucker gedruckt werden soll?
Hast Du einen Tipp??? :o
Grüße
Olaf
Philipp Knecht
Hi OlafFreeText bietet sich hier an.
Kannst du in der Printdef setzen und im Layouter wieder abfragen.
hth
Olaf Borke
Hi Philipp,das heisst aber, dass ich für jede existierende Printdef eine zweite anlegen müsste (eine für Laser-, eine für Nadeldrucker).
OK. Aber ich kann ja leider nicht den Drucker direkt an die Printdef hängen, sondern müsste dann auch noch das Layout doppeln.....
Oder kannst Du Dir noch eine nadere Möglichkeit vorstellen?
Grüße
Olaf
Philipp Knecht
Hi OlafAndere Frage. Was ist das Kriterium um auf Drucker A bzw. auf Drucker B zu drucken?
hth
Olaf Borke
Hi Philipp,Kriterium ist die Willkür des Anwenders.
Vorgabe ist:
Anwender A möchte z.B. den Lieferschein auf Endlospapier (Nadeldrucker) drucken. Als Layout haben wir ein Template für alle Marketingbelege definiert. Aber wenn möchte, dann kann er auch das gleiche Layout nutzen und auf dem Laserdrucker drucken.
Der einzge Unterschied ist, dass das Papier auf Endlosdrucker länger ist als DIN A4.
Wenn also Papersize DIN A4 eingestellt ist und er audem Laser druckt: kein Problem.
Druckt er aber auf dem Nadel, dann verschiebt sich der Ausdruck ab der 2.Seite.
Wir wollten grundsätzlich vermeiden, dass wir das Layout doppeln um den Pflegeaufwand zu minimieren.
Teilweise ist das auch sinnvoll zu wissen, ob es ein Nadeldrucker ist oder nicht, weil man dann z.B. ein Farb-Logo durh ein Schwarz-Weiß-Logo dynamisch tauschen könnte.
Wäre schön, wenn Dir da was zu einfällt.
Gruß
Olaf
Philipp Knecht
Hi OlafJa wenn es keine fixe Logik gibt musst du halt die Printef doppeln.
Mach dann einfach bei der ersten in der Spalte FreeText z.B ein "Laser" rein und bei der zweiten Printdef dann in dieser Spalte ein "Nadel".
Dann in der Layoutdefinition kannst dudiese FreeTexte im Printer Register wieder abfragen.
hth
0
Please sign in to leave a comment.
Comments
0 comments