Moin,
Unser nächstes Treffen findet am
Samstag, dem 20.06.2026 um 11:00 Uhr statt.
Adresse:
Remise der Klosterpforte in Kloster-Oesede.
Königstraße 1,
49124 Georgsmarienhütte
Anmeldungen hier im Thread.
Anfahrt per Bahn bis Haltestelle: Kloster Oesede
Bahnhof Kloster Oesede; 100 m von der Remise entfernt.
Anfahrt per Auto: ausreichend Parkplätze in der näheren Umgebung.
Unkosten: Der Raum kostet uns aktuell 30€/Tag.
Der Betrag wird auf die Teilnehmenden umgelegt (Bargeld mitbringen wäre Klasse)
Nach dem offiziellen Treffen, gehen wir meistens noch Essen.
Wir freuen uns auf interessante Leute und Themen.
Gruß Kralle
7. Norddeutsches Lazarustreffen am 20. Juni 2026
- kralle
- Lazarusforum e. V.
- Beiträge: 1353
- Registriert: Mi 17. Mär 2010, 14:50
- OS, Lazarus, FPC: Manjaro Linux, Mint und Windows 10 ,Lazarus 4.99, FPC-Version: 3.3.1
- CPU-Target: 64Bit
- Wohnort: Bremerhaven
- Kontaktdaten:
7. Norddeutsches Lazarustreffen am 20. Juni 2026
OS: MX Linux, Linux Mint und Windows 11
FPC-Version: 3.3.1 , Lazarus 3.99
+ Delphi XE7SP1
FPC-Version: 3.3.1 , Lazarus 3.99
+ Delphi XE7SP1
- kralle
- Lazarusforum e. V.
- Beiträge: 1353
- Registriert: Mi 17. Mär 2010, 14:50
- OS, Lazarus, FPC: Manjaro Linux, Mint und Windows 10 ,Lazarus 4.99, FPC-Version: 3.3.1
- CPU-Target: 64Bit
- Wohnort: Bremerhaven
- Kontaktdaten:
Re: 7. Norddeutsches Lazarustreffen am 20. Juni 2026
Moin,
ich werde kommen und hätte da auch schon ein Thema, das mich interessiert:
Wie bekomme ich den Inhalt eines Memo, StringGrids und/oder eines Canvas auf Papier bzw. in eine PDF.
Bisher haben meine Programme Daten verarbeitet und wieder als Datei gespeichert, aber ich habe noch nie etwas ausgedruckt bzw. in eine PDF geschrieben.
Vielleicht kann das jemand quasi als kleinen Kurs, erklären.
Gruß Kralle
ich werde kommen und hätte da auch schon ein Thema, das mich interessiert:
Wie bekomme ich den Inhalt eines Memo, StringGrids und/oder eines Canvas auf Papier bzw. in eine PDF.
Bisher haben meine Programme Daten verarbeitet und wieder als Datei gespeichert, aber ich habe noch nie etwas ausgedruckt bzw. in eine PDF geschrieben.
Vielleicht kann das jemand quasi als kleinen Kurs, erklären.
Gruß Kralle
OS: MX Linux, Linux Mint und Windows 11
FPC-Version: 3.3.1 , Lazarus 3.99
+ Delphi XE7SP1
FPC-Version: 3.3.1 , Lazarus 3.99
+ Delphi XE7SP1
-
nummer8
- Beiträge: 66
- Registriert: Sa 30. Apr 2016, 10:20
- OS, Lazarus, FPC: Windows 8 -11 ; linux Debian 13
- CPU-Target: 32bit 64bit
Re: 7. Norddeutsches Lazarustreffen am 20. Juni 2026
Kralle,
Hier ein kleines Beispiel.
Eine Funktion zum Erstellen der PDF-Datei und ein paar Hilfsfunktionen.
eine
Hier ein kleines Beispiel.
Eine Funktion zum Erstellen der PDF-Datei und ein paar Hilfsfunktionen.
Code: Alles auswählen
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls,
fpPDF, FPImage, FPReadPNG, FPReadJPEG;
const
ML = 15.0; // left margin mm
MR = 15.0; // right margin mm
MT = 12.0; // top margin mm
PW = 210.0; // A4 width mm
PH = 297.0; // A4 height mm
ROW_H = 6.0;
var
Doc: TPDFDocument;
Sec: TPDFSection;
Page: TPDFPage;
FN, FB: integer; // font indices normal/bold
Y, LX, VX: double;
I: integer;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
procedure HLine(AY: double; AWide: double=0.3);
procedure TB(AX, AY: double; const S: string; ASize: integer=9);
procedure TN(AX, AY: double; const S: string; ASize: integer=9);
public
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.HLine(AY: double; AWide: double = 0.3);
begin
Page.DrawLine(ML, PH - AY, PW - MR, PH - AY, AWide);
end;
procedure TForm1.TN(AX, AY: double; const S: string; ASize: integer = 9);
begin
Page.SetFont(FN, ASize);
Page.WriteText(AX, PH - AY, S);
end;
procedure TForm1.TB(AX, AY: double; const S: string; ASize: integer = 9);
begin
Page.SetFont(FB, ASize);
Page.WriteText(AX, PH - AY, S);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Doc := TPDFDocument.Create(nil);
try
Doc.Infos.Title := 'TestDocument ';
Doc.Infos.Author := 'My name';
Doc.Options := [poCompressText, poCompressFonts];
Doc.StartDocument;
FN := Doc.AddFont('Helvetica');
FB := Doc.AddFont('Helvetica-Bold');
Sec := Doc.Sections.AddSection;
Page := Doc.Pages.AddPage;
Page.PaperType := ptA4;
Page.UnitOfMeasure := uomMillimeters;
Sec.AddPage(Page);
Y := Y + ROW_H;
HLine(Y, 0.3);
Y := Y + 5.5;
// Regels
for I := 0 to 10 do //length memo lines
begin
TN(ML,Y,'This is the line of text ('+ inttostr(I)+ ')' ,10);
Y := Y + ROW_H;
end;
HLine(Y, 0.5);
Y := Y + 5;
Doc.SaveToFile('test.pdf');
finally
Doc.Free;
end;
end;
end.
eine
- kralle
- Lazarusforum e. V.
- Beiträge: 1353
- Registriert: Mi 17. Mär 2010, 14:50
- OS, Lazarus, FPC: Manjaro Linux, Mint und Windows 10 ,Lazarus 4.99, FPC-Version: 3.3.1
- CPU-Target: 64Bit
- Wohnort: Bremerhaven
- Kontaktdaten:
Re: 7. Norddeutsches Lazarustreffen am 20. Juni 2026
Moin,
danke für das Beispiel.
Unter Linux muss man auch hier die Groß-/Kleinschreibung beachten:
Das funktioniert hier nicht, weil die Schriften nicht gefunden werden.
Gruß Kralle
danke für das Beispiel.
Unter Linux muss man auch hier die Groß-/Kleinschreibung beachten:
Code: Alles auswählen
FN := Doc.AddFont('Helvetica');
FB := Doc.AddFont('Helvetica-Bold');
Code: Alles auswählen
fn := doc.addfont('helvetica');
fb := doc.addfont('helvetica-bold');
OS: MX Linux, Linux Mint und Windows 11
FPC-Version: 3.3.1 , Lazarus 3.99
+ Delphi XE7SP1
FPC-Version: 3.3.1 , Lazarus 3.99
+ Delphi XE7SP1