Papiergröße

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

Moderator: Moderatoren

Antworten
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:

Papiergröße

Beitrag von Jan »

Ich hab gerade mal in die XbpDev.ch geschaut. Leider finde ich dadrin kein DIN A 6. Obwohl ja die meisten Drucker damit sehr wohl umgehen können.

Weiß jemand, ob das eine der anderen angegeben Größen ist mit den etwas kryptischen Namen wie QUARTO oder STATEMENT?

Oder wie ich das selber benutzerdefiniert erstelle? Ich hab sowas noch nie gemacht, bislang passten immer DIN A 4 und Konsorten.

Jan
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 Jan,

schau dir mal an oPrinter:Forms(). Die Rückgabe ist ein Array. Im 2. Element des Arrays steht der Name des Forms. Damit kannst du prüfen, ob der Drucker DIN A 6 kann.
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 »

Hallo Rolf,

:forms() hatte ich mir auch schon angesehen, bin da aber ehrlich gesagt nicht wirklich durchgestiegen.

Jan
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 Jan.

hier mein Auszug aus dem Code.

aFormId:=oPrinter:Forms()
For i = 1 to Len(aFormId)
If aFormId[2]="Legal"
oPrinter:setFormSize(aFormId[1])
exit
EndIf
Next i

also aFirmdId beinhaltet alle Formate die der Drucker kann. Im ersten Element ist eine numerische Nummer. Diese Nummer muß dann an setFormSize übergeben werden.

In diesem Code frage ich "Legal" ab, da hier Hängeetiketten ausgedruckt werden, wobei das Papier etwas länger als DIN A4 ist. Das Papierformat heißt "Legal"

Probier das mal aus. Was der Drucker hat, kannst du dir ja so anzeigen lassen.

msgbox(var2lchar(aFormId))

somit bekommst du das komplette Array angezeigt.
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 »

Hallo Rolf,

ja, das funktioniert.

Ich glaube, jetzt habe ich auch etwas Druckertechnisches besser verstanden. Das nämlich ein bestimmtes Format immer unter einer bestimmten FormID zu finden ist. Sprich: Vermutlich könnte ich jetzt, da ich weiß, daß ich die 70 für DIN A 6 brauche, immer die einsetzen. Bislang war mir das in keinster Weise klar. Ist aber im nachhinein absolut nachvollziehbar.

Außerdem habe ich mir da dann gleich eine Routine eingebaut, falls der Drucker das Format nicht unterstützt.

Für welche Drucker gilt das :forms() eigentlich? Ich könnte mir vorstellen, daß ältere Drucker(treiber) keine oder unvollständige Werte zurückgeben. Ich hab leider meinen alten Epson 24-Nadler nicht mehr, dann könnte ich das mal probieren. Hast Du da irgendwelche Erfahrungen?

Jan
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 Jan,

also :Forms() gilt für alle im Windows installierten Drucker. Natürlich kann es sein, wenn es ältere Drucker sind, das die Angaben unvollständig sind.
Auch kann es passieren, daß die entsprechende Information nicht immer
"die Nummer 70" hat.

Deshalb durchlaufe ich das Array aFormId ja mit For Next - bis ich Legal gefunden habe. An For/Next wirst du wahrscheinlich auch nicht vorbeikommen. Und wenn der abgefragte Wert nicht enthalten ist, dann kannst du auch nicht auf diesem drucker ausdrucken. bzw. nicht korrekt.
Gruß Rolf

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