LazReport mit anderer Schriftart
LazReport mit anderer Schriftart
Hallo,
kurze Frage. Wenn ich einen Report erstelle und eine andere Schrift, z.B. Courier verwende, so wird der
Report am Bildschirm richtig dargestellt. Wenn ich ihn als PDF speichere, oder ausdrucke, ist die Schrift
wieder Standard, würde sagen Arial. Ist das Absicht? (Kompatibilität? Windows <-> Linux <-> Mac)
kurze Frage. Wenn ich einen Report erstelle und eine andere Schrift, z.B. Courier verwende, so wird der
Report am Bildschirm richtig dargestellt. Wenn ich ihn als PDF speichere, oder ausdrucke, ist die Schrift
wieder Standard, würde sagen Arial. Ist das Absicht? (Kompatibilität? Windows <-> Linux <-> Mac)
Re: LazReport mit anderer Schriftart
Das liegt daran, dass auf dem System, auf dem Sie die PDF-Datei öffnen/drucken, die Schriftart, die im Bericht verwendet wurde, nicht mehr existiert.
Sie können dem vorbeugen, indem Sie die PDF-Datei zusammen mit den Schriftarten speichern, aber dann ist die Datei um ein Vielfaches größer.
Sie können dem vorbeugen, indem Sie die PDF-Datei zusammen mit den Schriftarten speichern, aber dann ist die Datei um ein Vielfaches größer.
Grüße / Pozdrawiam
paweld
paweld
Re: LazReport mit anderer Schriftart
Es ist ein und der gleiche Rechner.Das liegt daran, dass auf dem System, auf dem Sie die PDF-Datei öffnen/drucken, die Schriftart, die im Bericht verwendet wurde, nicht mehr existiert.
Es scheint mir das "PrepareReport" alle Formatierungen übernimmt, aber die Schriftart nicht berücksichtigt.
Re: LazReport mit anderer Schriftart
Mit welcher Komponente exportieren Sie in diesem Fall den Bericht in PDF? Oder beziehen Sie sich auf einen PDF-Drucker?
Im Allgemeinen ist mir ein solches Phänomen noch nicht begegnet. Wenn Sie können, geben Sie bitte mehr Details an, d.h. welche Version von lazarus/fpc, welches Betriebssystem
Im Allgemeinen ist mir ein solches Phänomen noch nicht begegnet. Wenn Sie können, geben Sie bitte mehr Details an, d.h. welche Version von lazarus/fpc, welches Betriebssystem
Grüße / Pozdrawiam
paweld
paweld
Re: LazReport mit anderer Schriftart
Code: Alles auswählen
if GO_Report.PrepareReport then begin
GO_Report.ExportTo(TfrTNPDFExportFilter, SaveDialog1.FileName);
my_MessageOK('Hinweis', 'PDF-Export erfolgreich ausgeführt!', 'Folgende Datei wurde erstellt: ' + SaveDialog1.FileName);
end;
Re: LazReport mit anderer Schriftart
Lazarus 3.2 (rev 9c6333cd) FPC 3.2.2 i386-win32-win32/win64
Re: LazReport mit anderer Schriftart
Er nimmt aber auch beim Ausdruck die Standardschrift. (Die Anzeige erscheint korrekt mit Courier)
Code: Alles auswählen
if PrintDialog1.Execute then begin
try
Printer.SetPrinter(Printer.PrinterName);
if GO_Report.PrepareReport then begin
GO_Report.PrintPreparedReport('', 1);
end;
finally
//
end;
end;
Re: LazReport mit anderer Schriftart
Im Anhang finden Sie ein Beispiel (erfordert das Paket „lr_pdfexport“), sowohl die Vorschau als auch der Ausdruck und die pdf-Datei verwenden die im Editor ausgewählten Schriftarten.
- Dateianhänge
-
- 2024-09-25 23_22_27-report.pdf - [project1] - SumatraPDF.png (139.75 KiB) 1837 mal betrachtet
-
project1.zip
- (5.77 KiB) 56-mal heruntergeladen
Grüße / Pozdrawiam
paweld
paweld
Re: LazReport mit anderer Schriftart
Ich habe mal ein ganz einfaches Beispiel erstellt.
1. frReport und frTNPDFExport auf ein Formular ziehen.
2. Ein Button bekommt folgendes in OnClick Ereignis
Die Zeile wird am Bildschirm in "COURIER" angezeigt.
Die TEST.PDF verwendet "ARIAL"
1. frReport und frTNPDFExport auf ein Formular ziehen.
2. Ein Button bekommt folgendes in OnClick Ereignis
Code: Alles auswählen
procedure TForm1.Button1Click(Sender: TObject);
var
xMemo : TfrMemoView;
xMargin : Integer;
xTop : Integer;
xWidth : Integer;
xHeight : Integer;
begin
frReport1.Pages.Add;
xMemo := TfrMemoView.Create(frReport1.Pages[0]);
xMemo.Font.Name := 'COURIER';
xMemo.Font.Size := 12;
xMemo.Font.Bold := False;
xMemo.Font.Italic := False;
xMemo.Font.Underline := False;
xMemo.Font.Color := clBlack;
xMemo.FillColor := clWhite;
xMemo.AutoSize := False;
xMargin := 10;
xTop := 10;
xWidth := 600;
xHeight := 20;
xMemo.SetBounds(xMargin, xTop, xWidth, xHeight);
xMemo.Memo.Add('Fest gemauert in der Erden, steht die Form aus Lehm gebrannt ...');
frReport1.PrepareReport;
frReport1.ExportTo(TfrTNPDFExportFilter, 'g:\test.pdf');
frReport1.ShowPreparedReport;
end;
Die TEST.PDF verwendet "ARIAL"
Re: LazReport mit anderer Schriftart
Ihr Beispiel arbeitet auch bei mir korrekt! Alle Schriften stimmen.
Habe mal mein Beispiel als ZIP angehängt.
Vielleicht liegt es daran, dass ich nicht den Designer verwende, sondern
den Report manuell erstelle.
Habe mal mein Beispiel als ZIP angehängt.
Vielleicht liegt es daran, dass ich nicht den Designer verwende, sondern
den Report manuell erstelle.
- Dateianhänge
-
lr_test.zip
- (139.17 KiB) 54-mal heruntergeladen
-
- Beiträge: 1084
- Registriert: Sa 12. Sep 2015, 12:10
- OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
- CPU-Target: Win 32/64, Linux64
- Wohnort: Wien
Re: LazReport mit anderer Schriftart
Möglicherweise hilft dir dieses Beispiel von @paweld
In seinem Beispiel wird das Memo (TfrMemoView) nicht direkt erstellt sondern über
Könnte sein, dass das einen Unterschied macht, denn du erstellst das Memo mit der aktuellen Seite des Reports als Parent, wohingegen das Memo in DrawText der Liste der Objekte des Reports hinzugefügt wird.
Ein Versuch ist es sicher wert
In seinem Beispiel wird das Memo (TfrMemoView) nicht direkt erstellt sondern über
Code: Alles auswählen
procedure TlrCodeReport.DrawText(X, Y, W, H: double; Text: string;
Style: TlrTextRectStyle);
Code: Alles auswählen
var
AText: TfrMemoview;
begin
......
Report.Pages[ActivePage].Objects.Add(AText);
Re: LazReport mit anderer Schriftart
Ich habe Ihr Beispiel gesehen und das Problem besteht tatsächlich. Es sieht so aus, als ob die Schriftart „Courier“ beim Drucken und Exportieren nicht im System gefunden wird (nur bei der Vorschau ist es OK) - bitte melden Sie den Fehler in GitLab: https://gitlab.com/freepascal.org/lazar ... s/-/issues
In Ihrem Fall ist die schnellste Lösung, die Schriftart in „Courier New“ zu ändern
In Ihrem Fall ist die schnellste Lösung, die Schriftart in „Courier New“ zu ändern

Grüße / Pozdrawiam
paweld
paweld
Re: LazReport mit anderer Schriftart
Perfekt! Courier New funktioniert.In Ihrem Fall ist die schnellste Lösung, die Schriftart in „Courier New“ zu ändern
Den Fehler werde ich melden.
Vielen Dank.