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) 2363 mal betrachtet
 
- 
			
		
		
				 project1.zip project1.zip
- (5.77 KiB) 87-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 lr_test.zip
- (139.17 KiB) 81-mal heruntergeladen
 
- 
				charlytango
- Beiträge: 1198
- 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.
 Verein
Verein 
 Links
Links Suche
Suche