Registriert seit: 24. Mär 2008
36 Beiträge
|
Re: Leere Seite bei Ausdruck auf Brother MFC 7440n über TPri
19. Nov 2009, 18:52
Hallo Frank,
nein habe ich nicht. Hier nachfolgend mal der wirklich simple Test-Code der schon nicht funktioniert.
(bzw. nur auf dem Modell nicht.)
Ich habe auch den Aufruf auch schon in die Prozedur zum Ausschalten der Fließkommaberechnung (siehe oben) gesetzt - ohne Erfolg.
Delphi-Quellcode:
Uses
Printers;
procedure TForm2.cbPrinterChange(Sender: TObject); // Ereignis wenn die Druckerauswahl geändert wird.
Begin
// Die Druckerauswahl ist nur nötig, wenn nicht der Standarddrucker verwendet wird.
// Printer.PrinterIndex := printer.Printers.IndexOf( cbPrinter.text ) ; // alte Variante
Printer.SetPrinter(PChar(cbPrinter.text),PChar('WINSPOOL'),PChar(''),0); // neue Variante
end;
procedure TForm2.DruckeKreuze;
var
x1,y1,x2,y2 : Integer ;
mm : Integer ;
begin
PrinterDPI := GetDeviceCaps(Printer.Handle, LOGPIXELSx) ;
SeitenBreite := Printer.PageWidth ;
Seitenhoehe := Printer.PageHeight ;
mm := round ( PrinterDPI / 25.4 ) ;
Printer.BeginDoc ;
try
Printer.Canvas.TextOut( 10 * mm, 10 * mm, 'Drucker: ' ) ;
Printer.Canvas.TextOut( 30 * mm, 10 * mm, cbPrinter.text ) ;
Printer.Canvas.TextOut( 10 * mm, 15 * mm, 'DPI: ' ) ;
Printer.Canvas.TextOut( 30 * mm, 15 * mm, IntToStr( PrinterDPI ) ) ;
Printer.Canvas.TextOut( 10 * mm, 20 * mm, 'Seitenbreite: ' ) ;
Printer.Canvas.TextOut( 30 * mm, 20 * mm, IntToStr( Seitenbreite ) ) ;
Printer.Canvas.TextOut( 10 * mm, 25 * mm, 'Seitenhöhe: ');
Printer.Canvas.TextOut( 30 * mm, 25 * mm, IntToStr( Seitenhoehe ) ) ;
x1 := ( SeitenBreite div 2 ) - ( 2 * PrinterDPI ) ;
x2 := ( SeitenBreite div 2 ) + ( 2 * PrinterDPI ) ;
y1 := ( SeitenHoehe div 2 ) - ( 2 * PrinterDPI ) ;
y2 := ( SeitenHoehe div 2 ) + ( 2 * PrinterDPI ) ;
Printer.canvas.moveto( x1, SeitenHoehe Div 2 ) ;
Printer.canvas.LineTo( x2, SeitenHoehe Div 2 ) ;
Printer.canvas.moveto( SeitenBreite Div 2, y1 ) ;
Printer.canvas.LineTo( SeitenBreite Div 2, y2 ) ;
finally
Printer.EndDoc ;
end;
end;
Gruß Ralf
|
|
Zitat
|