cupsprinter ´´verschluckt´´ letzten Line Befehl

Für Probleme bezüglich Grafik, Audio, GL, ACS, ...
Antworten
KOBOLD Messring GmbH
Beiträge: 155
Registriert: Mi 22. Aug 2007, 14:52
OS, Lazarus, FPC: Mandriva Linux 2008 (L 0.9.28 FPC 2.2.4)
CPU-Target: 32Bit
Wohnort: 65719 Hofheim am Taunus
Kontaktdaten:

cupsprinter ´´verschluckt´´ letzten Line Befehl

Beitrag von KOBOLD Messring GmbH »

Nachdem ich nun erfolgreich auf 0.9.28 von 0.9.26 aktualisiert habe - um endlich auch die 300 oder 600 dpi unter Linux nutzen zu können mit cupsprinter - habe ich folgenden Effekt:
Folgt auf einen Printer.Canvas.Line Befehl ein Rectangle oder FillRect, wird die letzte Line nicht gezeichnet.
Unter 0.9.26 funktionierte alles wunderbar (nur eben mit maximal 72 dpi).
Ich hatte versucht, den Patch im Lazarus-Bugtracker http://bugs.freepascal.org/view.php?id=13356 in die 0.9.26-Installation einzubauen, das ging aber komplett daneben.
Nun erfolgreich (dank Eurer Hilfe) die 0.9.28.2 aus dem SVN gebaut und nun dieses Fiasko mit den fehlenden Linien.
In meinem Programm zeichne ich auf die Printer.Canvas Messpunkte, Regressionskurven, Achsen, etc... brauche also jede Menge dieser Line und Rectangle Anweisungen.
¿Habt Ihr eine Idee?
Ich will doch nicht so was mieses in mein Programm einbauen: :evil:

Code: Alles auswählen

{$IFDEF UNIX}
    For i := 1 TO 2 DO Printer.Canvas.Line (x1, y1, x2, y2);
   // Bei Linux musst Du zweimal zeichnen, denn die letzte wird verschluckt...
  {$ELSE}
    Printer.Canvas.Line (x1, y1, x2, y2);
{$ENDIF}
(Denn das ärgert: Unter Windows hat es schon immer funktioniert, mit 300 oder 600 dpi zu drucken)

Antworten