Druckposition

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

Moderator: Moderatoren

Antworten
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14653
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Druckposition

Beitrag von Jan »

Ein für mich rätselhaftes Phänomen bringt mich zur Verzweiflung. Ich bedrucke teilweise Formulare. Da sollte also die Druckposition auf die vorgedruckten Linien passen. Und obwohl ich das Papiermaß, den oberen nichtbedruckbaren Rand, und die Druckposition berechne, passt das manchmal nicht. Insbesondere Tintenstrahler schieben den ganzen Ausdruck um bis zu 1 cm nach oben.

Warum? Wenn ich doch die Ränder auslese, dann dürfte das doch nicht passieren?

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15696
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Druckposition

Beitrag von brandelh »

Tja woher kenne ich das nur ...

wenn du es richtig machst, müsste es eigentlich immer passen, ...
leider bist du aber auch vom Druckertreiber abhängig ;-)

Du meintest doch XbpPrinter() oder ?

In den letzten Jahren hatte ich mit meiner Druckerklasse auf den mir bekannten
Modellen allerdings keine Probleme mehr (teure und ältere Modelle).
Schreibe doch mal deine Routine, die die Ränder berücksichtigt.
Gruß
Hubert
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14653
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Re: Druckposition

Beitrag von Jan »

Hubert,

lt. Doku ist das der 4. Eintrag in oPrinter:paperSize(). Den nehme ich. Und ziehe den von der gewünschten Druckposition ab.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15696
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Druckposition

Beitrag von brandelh »

und wie stellst du oPS:create(...) ein ?

Wie gesagt, es könnte an fehlerhaften Treibern liegen.

Drucken alle Drucker mit extrem großem Rand-Unten falsch, oder
nur einzelne (Laser haben fast gleiche Ränder ...) ?
Gruß
Hubert
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14653
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Re: Druckposition

Beitrag von Jan »

Hubert,

das sieht so aus.
Hubert hat geschrieben:oPS:create(oPrinter, aSize, GRA_PU_LOMETRIC + GRA_PO_TOPLEFT)
Und ja, das Problem scheinen hauptsächlich Tintenstrahler mit den größeren Rändern zu seni. Aber warum? Wo man doch extra die Ränder auslesen kann (wenn denn :paperSize() die korrekt ausliest).

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16511
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: Druckposition

Beitrag von Martin Altmann »

Hallo Jan,
Du nutzt die noch nicht offiziell supportete Orientation!!
Da hatten auch noch andere das selbe Problem, steht auch was zu in der Newsgroup (oder sogar Knowledgebase?)...
Musst Du mal suchen - ich darf erst mal zum Zahnarzt.

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15696
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Druckposition

Beitrag von brandelh »

Hallo Jan,

wenn du TOPLLEFT setzt, dann mußt du den oberen Rand nehmen, nicht den unteren.
z.B.
du willst papierkante = 0,0
Xbase++ druckt aber Hardwarerand oben links als 0,0 (normalerweise ja unten links !)
wenn du nun auf 10,10 (1cm von jeder Seite, wobei die Texte nicht bis oben gemessen werden,
sondern in der Mitte zwischen Ober- und Unterlänge) drucken willst, must du 10-linkerRand und 10-obererRand+SchrifthöheOberLänge rechnen.
die Druck aSize ergäbe sich dann aus rechtem Rand - linkem Rand und untererRand-obererRand
(jeweils die größeren Werte minus den kleineren).

Das habe ich bei mir in meiner Druckerklasse eingebaut, sodass ich beim Drucken nur noch ab Papierkante eingebe (ohne TOPLEFT, somit muss ich anders umrechnen).
Gruß
Hubert
Antworten