Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Drucken (https://www.delphipraxis.net/177000-drucken.html)

Trebuh 9. Okt 2013 18:39

Drucken
 
Hilfe,

Ich drucke mit Canvas z.B.
// Drucken Start
printer.begindoc;
...
szS:='Text';
Printer.Canvas.TextOut(100,100,szS);
...
// Drucken Ende
printer.enddoc;


Funktioniert alles super, ...

Nur bei einem Drucker (HP Color LaserJet, ...) werden pro ...TextOut(..) manchmal Rähmchen drumrum (z.B. um 'Text') ausgedruckt. (Rähmchen sind immer so groß wie die Druck-Elemente)

Wenn man den gleichen Ausdruck z.B. auf einen PDF-Drucker umleitet funktioniert alles.

Wer hat ähnliche Erfahrungen gemacht, wer hat auch mit so Rähmchen zu kämpfen ?

Gruss Trebuh

Furtbichler 9. Okt 2013 18:43

AW: Drucken
 
Ich habe in meinem Leben noch nicht auf diese Weise gedruckt. Ich verwende immer einen Report-Generator. Früher (gaaanz früher) war das Quickreport und mittlerweile FastReport. Würde ich mir an deiner Stelle auch angewöhnen. Sieht einfach besser aus. Es gibt FastReport auch in einer Free-Version. Kann dann nicht soviel, reicht aber dicke.

Ach ja: Dann hast Du nur dann Rähmchen, wenn Du welche haben willst :-)

Trebuh 9. Okt 2013 19:30

AW: Drucken
 
QuickReport habe ich früher auch verwendet, da muss man mehr oder wenig die Druckelemente statisch auf ein Formular platzieren. Mit der Printer.Canvas.... kann man sehr dynamische Protokolle mit dem Progamm aus Daten erstellen.

Furtbichler 9. Okt 2013 19:40

AW: Drucken
 
Na ja. Alles, was tabellarisch ist, geht 1000x einfacher mit einem Reportdesigner, vielleicht wusstest Du das nicht. Und fast alles ist tabellarisch.

Aber auch Serienbriefe, Vertragstexte (je nach Option aus Bausteinen zusammengesetzt) usw. lassen sich einfacher, schneller und besser erstellen.

Aber wenn man anderes gewohnt ist...

arnof 9. Okt 2013 20:01

AW: Drucken
 
Mit Druckertreibern da gibt es einiges was oft nicht geht, das gilt besonders für ältere Betriebsysteme.

Ansatzpunkte:

1. schaue bei HP, ob es eine neue Version für deinen Treiber gibt.

2. wenn es kein billig Drucker ist, so gibt es von HP einen Universaltreiber, dieser ist Zertifiziert und läuft i.d.R. Problemlos (ohne viele Bugs)

3. wenn alles nicht hilft, dann schau mal, ob es einen Treiber von Microsoft gibt (die bei Windows dabei sind), mit dem es dein Drucker tut.

Du wirst sehen deine Probleme werden verschwinden :thumb:

bcvs 10. Okt 2013 06:58

AW: Drucken
 
Zitat:

Zitat von Trebuh (Beitrag 1231477)
QuickReport habe ich früher auch verwendet, da muss man mehr oder wenig die Druckelemente statisch auf ein Formular platzieren.

Man kann bei Quickreport die Labels o.ä. durchaus zur Laufzeit verschieben oder dynamisch erzeugen. Ich habe damit einen einigermaßen flexiblen Report-Designer gebaut.

rwalper 10. Okt 2013 07:29

AW: Drucken
 
Wenn Du schon "per Hand" druckst, dann achte darauf, dass Du immer alle Brush- und Pen-Properties initialisierst (im Zweifel auch zu Beginn jeder Druck-Routine).

Außerdem kann es vorkommen, dass Transparenzen je nach Druckertreiber (siehe #5) nicht korrekt ausgegeben werden, obwohl es z.B. auf dem Bildschirm gut aussieht.
Daher könntest Du (falls Transparenz nicht notwendig ist) den Hintergrund initialisieren:
Delphi-Quellcode:
  Canvas.Brush.Color := clWhite;
  Canvas.Brush.Style := bsSolid;
Und falls der Rahmen immer noch da ist, wäre das Folgende einen Versuch wert:
Delphi-Quellcode:
  Canvas.Pen.Color := clWhite;


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:32 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz