Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Fastreport druckt nicht (https://www.delphipraxis.net/195955-fastreport-druckt-nicht.html)

ensaron 12. Apr 2018 07:11

AW: Fastreport druckt nicht
 
Zitat:

Zitat von Jasocul (Beitrag 1398876)
Vermutlich musst du nach dem PrinterDialog den ausgewählten Drucker noch dem Fastreport zuweisen.

Nein, die Anzeige des Druckerdialogs erfolgt in der Prozedur, die auch den Druck durchführt. Da ist kein manueller Eingriff notwendig.

@borstenei:
Hast du denn bei Auswahl des Druckers über den Druckdialog und bei dem funktionieren Ausdruck über Angabe des Druckernamens jeweils den gleichen Drucker benutzt?
Wenn ja, müsstest du mal in die Funktion TfrxPreviewPages.Print reindebuggen (Unit frxPreviewPages). Der einzige Unterschied beim Aufruf mit Druckernamen vs. mit Druckdialog sollte ja die Anzeige des Druckdialogs sein. Falls in den beiden Fällen der nachfolgende Quelltext unterschiedlich durchlaufen wird, hast du schonmal einen Anhaltspunkt an welcher Stelle dein Problem liegt.

KodeZwerg 12. Apr 2018 07:31

AW: Fastreport druckt nicht
 
Vielleicht hilft Dir ja einer der Schnippsel hier um ans Ziel zu kommen.
Delphi-Quellcode:
uses Printers;

// so könnte man den Standard-Drucker-Namen und sein Port ermitteln
procedure TForm1.Button1Click(Sender: TObject);
var
  MyPrinter, MyDriver, MyPort: array[0..100] of Char;
  DevMode: THandle;
begin
  Printer.GetPrinter(MyPrinter, MyDriver, MyPort, DevMode);
  Label1.Caption:=MyPrinter;
  Label2.Caption:=MyPort;
end;

// so könnte man alle Drucker ermitteln
procedure TForm1.Button2Click(Sender: TObject);
begin
  Memo1.Lines.Assign(Printer.Printers);
end;

// so könnte man die DPI vom Drucker ermitteln
procedure TForm1.Button3Click(Sender: TObject);
begin
  Label3.Caption := IntToStr(GetDeviceCaps(Printer.Handle, LOGPIXELSX)) +
                    ' x '+IntToStr(GetDeviceCaps(Printer.Handle, LOGPIXELSY))+
                    ' DPI (dots per inch)';
end;


// so könnte man die eingelegte papiergröße ermitteln
procedure TForm1.Button4Click(Sender: TObject);
var
  papermmx, papermmy: Extended;
begin
  Printer.BeginDoc;
  {
  PHYSICALWIDTH = Dots horizontal of the paper
  LOGPIXELSX   = DPI (Dots per Inch)
  25.4          = To calculte Inch to Millimeter
  }
  papermmx:=GetDeviceCaps(Printer.Canvas.Handle,PHYSICALWIDTH)/
            GetDeviceCaps(Printer.Canvas.Handle,LOGPIXELSX) * 25.4;
  papermmy:=GetDeviceCaps(Printer.Canvas.Handle,PHYSICALHEIGHT)/
            GetDeviceCaps(Printer.Canvas.Handle,LOGPIXELSY) * 25.4;
  with printer.canvas do
  begin
    TextOut(200,100,floattostr(papermmx)+' mm x '+floattostr(papermmy)+' mm');
  end;
  Printer.EndDoc;
end;

MichaelT 12. Apr 2018 07:46

AW: Fastreport druckt nicht
 
Druckst du auch das richtige Format? US/Legal vs. A4 oder so, falls das eine Rolle spielt.

Zitat:

Zitat von borstenei (Beitrag 1398695)
Ich habe hier 2 Anwendungen die nur noch Reports ausdrucken wenn ich den Umweg über die Preview gehe..


ggscholz 5. Jun 2021 08:59

AW: Fastreport druckt nicht
 
Gab es denn für das hier beschriebene Problem eine Lösung. Bei mir lande ich auch bei einem Rechner nach Aufruf der Preview und click auf den Druck-Button im Speichern Dialog


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:08 Uhr.
Seite 2 von 2     12   

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