Druckposition
Moderator: Moderatoren
- Jan
- 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
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
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.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- brandelh
- 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
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.
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
Hubert
- Jan
- 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
Hubert,
lt. Doku ist das der 4. Eintrag in oPrinter:paperSize(). Den nehme ich. Und ziehe den von der gewünschten Druckposition ab.
Jan
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.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- brandelh
- 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
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 ...) ?
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
Hubert
- Jan
- 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
Hubert,
das sieht so aus.
Jan
das sieht so aus.
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 aperSize() die korrekt ausliest).Hubert hat geschrieben:oPS:create(oPrinter, aSize, GRA_PU_LOMETRIC + GRA_PO_TOPLEFT)
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Martin Altmann
- 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
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
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
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.
- brandelh
- 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
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).
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
Hubert