Umlaute und Sonderzeichen

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Benutzeravatar
Lincoln Six Echo
Beiträge: 138
Registriert: Di 26. Aug 2014, 16:42
OS, Lazarus, FPC: Win10, Debian
CPU-Target: I7/I9/Q9650/u.a.
Wohnort: Hamburg

Re: Umlaute und Sonderzeichen

Beitrag von Lincoln Six Echo »

Code: Alles auswählen

...
jpg := TJPEGImage.Create;
jpg.Assign(Graphic);
mem := TMemoryStream.Create;
jpg.SaveToStream(mem);
mem.Position := 0;
i := AddJPEGStream(mem,jpg.Width,jpg.Height);
mem.Free;
jpg.Free;
...
PDF.Page.DrawImage(10,10,150,250,i);

...

Benutzeravatar
Lincoln Six Echo
Beiträge: 138
Registriert: Di 26. Aug 2014, 16:42
OS, Lazarus, FPC: Win10, Debian
CPU-Target: I7/I9/Q9650/u.a.
Wohnort: Hamburg

Re: Umlaute und Sonderzeichen

Beitrag von Lincoln Six Echo »

Code: Alles auswählen

...
jpg = TJPEGImage.Create;
jpg.Assign(Graphic);
mem := TMemoryStream.Create;
jpg.SaveToStream(mem);
mem.Position := 0;
i := PDF.Images.AddJPEGStream(mem,jpg.Width,jpg.Height); // Breite + Höhe der Originalgrafik
mem.Free;
jpg.Free;
...
PDF.Page.DrawImage(10,10,150,250,i); // Beliebige Breite + Höhe
...

xos
Beiträge: 13
Registriert: Mi 26. Dez 2007, 17:49
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Schweiz

Re: Umlaute und Sonderzeichen

Beitrag von xos »

Bild einfügen aus einer Datei sollte so gehen:

Code: Alles auswählen

aImageIdx:=ActPDFDocument.Images.AddFromFile('Computer.bmp');
ActPDFPage.DrawImage(xPos,yPos,aWidth,aHeight,aImageIdx);

Benutzeravatar
Lincoln Six Echo
Beiträge: 138
Registriert: Di 26. Aug 2014, 16:42
OS, Lazarus, FPC: Win10, Debian
CPU-Target: I7/I9/Q9650/u.a.
Wohnort: Hamburg

Re: Umlaute und Sonderzeichen

Beitrag von Lincoln Six Echo »

Yapp. genau so.

ErnstVolker
Beiträge: 336
Registriert: Di 17. Feb 2009, 10:44
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: Umlaute und Sonderzeichen

Beitrag von ErnstVolker »

Ich klinke mich mal hier ein, da ich auch ein Problem mit Umlauten habe und Theos Tipp mit {$codepage UTF8} keine Abhilfe bietet.

Ich bin mit meinem "Projekt" ja von "Trunk" nach "Stable" umgezogen. In "Trunk" hatte ich schon das Problem mit den Umlauten, konnte aber mit UTF8Decode('für') den Umlaut im pdf darstellen. Auf der aktuellen Stable funktioniert das nicht, und ich weiß nicht wieso.

Hast Du evtl. einen Tipp für mich Theo?

Viele Grüße

Volker

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Re: Umlaute und Sonderzeichen

Beitrag von theo »

ErnstVolker hat geschrieben:
Mi 3. Apr 2024, 08:27
Ich bin mit meinem "Projekt" ja von "Trunk" nach "Stable" umgezogen. In "Trunk" hatte ich schon das Problem mit den Umlauten, konnte aber mit UTF8Decode('für') den Umlaut im pdf darstellen. Auf der aktuellen Stable funktioniert das nicht, und ich weiß nicht wieso.
Ich auch nicht.
Du bist also von der aktuellen Entwicklerversion (trunk) zurück auf stable und jetzt geht irgend etwas nicht?
Dann bleib doch bei trunk, das ist sowieso "die Zukunft". :wink:

Sonst schau halt nach, was sich verändert hat (Betrifft wohl am ehesten FPC)
https://wiki.freepascal.org/User_Changes_3.2.0 etc.

oder schau im Bugtracker, ob es etwas gibt: https://gitlab.com/freepascal.org/fpc/source/-/issues

wp_xyz
Beiträge: 4889
Registriert: Fr 8. Apr 2011, 09:01

Re: Umlaute und Sonderzeichen

Beitrag von wp_xyz »

Es geht anscheinend um PDF-Erzeugung. Da wirst du für uns sicher ein kleines Projekt erzeugen und hochladen können, in dem man den Fehler sieht? Ansonsten ist das nur blinde Raterei...

ErnstVolker
Beiträge: 336
Registriert: Di 17. Feb 2009, 10:44
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: Umlaute und Sonderzeichen

Beitrag von ErnstVolker »

Für ein Projekt fehlt mir jtzt die Muße.

Es geht um PDF-Erstellung.

Code: Alles auswählen

P.WriteText(xPos[34], yPos[34], 'Versteigerungsliste ' + UTF8Decode('für') + ' den');
sieht im PDF so aus:

Versteigerungsliste für den

Lasse ich UTF8Decode vor dem "für" weg, also so:

Code: Alles auswählen

P.WriteText(xPos[34], yPos[34], 'Versteigerungsliste ' + 'für' + ' den');
dann sieht das im pdf so aus:

Versteigerungsliste für den

ErnstVolker
Beiträge: 336
Registriert: Di 17. Feb 2009, 10:44
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: Umlaute und Sonderzeichen

Beitrag von ErnstVolker »

Guten Morgen,

heute Morgen hatte ich eher die Muße mal was zusammen zu hexen. Siehe Anhang.

Vielen Dank!
Dateianhänge
project1.zip
(141.73 KiB) 55-mal heruntergeladen

Joh
Lazarusforum e. V.
Beiträge: 186
Registriert: Sa 26. Mai 2012, 17:31
OS, Lazarus, FPC: Win 10 (L 2.2.6 x64 FPC 3.2.2)
CPU-Target: 64Bit

Re: Umlaute und Sonderzeichen

Beitrag von Joh »

ErnstVolker hat geschrieben:
Do 4. Apr 2024, 00:04
Es geht um PDF-Erstellung.

Code: Alles auswählen

P.WriteText(xPos[34], yPos[34], 'Versteigerungsliste ' + UTF8Decode('für') + ' den');
Mit was erstellst du PDFs? Sprich: wes Kind ist p?
just my two Beer

wp_xyz
Beiträge: 4889
Registriert: Fr 8. Apr 2011, 09:01

Re: Umlaute und Sonderzeichen

Beitrag von wp_xyz »

ErnstVolker hat geschrieben:
Do 4. Apr 2024, 08:43
heute Morgen hatte ich eher die Muße mal was zusammen zu hexen. Siehe Anhang.
Mit FPC/main (v3.3.1) wird der Umlaut in

Code: Alles auswählen

  P.WriteText(xPos[34], yPos[34], 'Versteigerungsliste ' + UTF8Decode('für') + ' den');
korrekt dargestellt. Dasselbe gilt für alle anderen Sonderzeichen in dem Text, wenn UTF8Decode angewendet wird,

Aber wieso muss man hier überhaupt mit UTF8Decode den String nach UTF16 konvertieren, wenn der Stringtyp in TPDFPage.WriteText explizit als UTF8String angefordert wird? Manchmal übersteigt FPC meine Intelligenz...
Zuletzt geändert von wp_xyz am Do 4. Apr 2024, 10:44, insgesamt 1-mal geändert.

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Re: Umlaute und Sonderzeichen

Beitrag von theo »

wp_xyz hat geschrieben:
Do 4. Apr 2024, 10:18
Aber wieso muss man hier überhaupt mit UTF8Decode den String nach UTF16 konvertieren, wenn der Stringtyp in TPDFPage.WriteText explizit als UTF8String angefordert wird? Manchmal übersteigt FPC meine Intelligenz...
Es hat mal funktioniert, aber mit FPC 3.2.2 geht es mMn nicht mehr (Regression).
Hier wurde das repariert:
https://gitlab.com/freepascal.org/fpc/s ... sues/39554

Möglicherweise ist es mit den "New Features" wieder unter die Räder gekommen.
https://gitlab.com/freepascal.org/fpc/s ... sues/39836

Man beachte, dass es sich auf PDF Standardfonts (eingebaute) bezieht, da diese nicht Unicode tauglich sind.

ErnstVolker
Beiträge: 336
Registriert: Di 17. Feb 2009, 10:44
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: Umlaute und Sonderzeichen

Beitrag von ErnstVolker »

Hhmm, scheint mir so, als funktioniere es nicht mit der Stable. Ich kann auch die Unit "LConvEncoding" einfügen und deren "UTF8-Konverter" benutzen, die Umlaute werden nicht dargestellt.

Trotzdem Dank dafür, dass Ihr euch das angesehen habt!

Antworten