Hallo Forum,
ich experimentiere gerade mit fcl-pdf und bin soweit auch ganz zufrieden.
Was mir allerdings überhaupt nicht gelingen will ist, wie man japanische Lettern in einem PDF erstellen kann.
Ich habe japanische TTF-Fonts heruntergeladen und wie im Beispiel und unter
https://www.freepascal.org/~michael/art ... lazpdf.pdf
beschrieben die Fonts hinzugefügt, gesetzt und Text ausgegeben. Das klappt auch, aber der japanische Text wird nicht in japanischen Lettern dargestellt.
Verwendete Fonts: NotoSansJP-*.ttf, PretendardJP-*.ttf, YuGothL.ttc (natürlich umgewandelt in TTF)
Verwendeter Text: これは完全な校正手順です。
Ausgabe im PDF: ããã¯å®å¨ãªæ ¡æ£æé ã§ãã
Apropo: Ich verwende Win10 mit deutscher Einstellung. Wenn ich einen der Fonts doppelklicke erscheint dessen Vorschau und hier sind nur deutsche Beispieltexte zu sehen. Im Windows-Programm Zeichentabelle erhält der Font aber japanische Lettern, allerdings weiter unten.
Was mach ich da falsch? Muss noch irgendeine Option gesetzt werden?
Danke für Eure Hilfe im voraus.
Japanische Fonts mit fcl-pdf
-
- Beiträge: 83
- Registriert: Sa 24. Nov 2012, 19:00
- OS, Lazarus, FPC: Windows10 und Linux 32 und 64Bit (L 2.2.2 FPC 3.2.2)
- CPU-Target: 32Bit und 64Bit
Japanische Fonts mit fcl-pdf
MfG,
petwey
Windows 10 und Linux 32 und 64Bit (L 2.2.2 FPC 3.2.2)
petwey
Windows 10 und Linux 32 und 64Bit (L 2.2.2 FPC 3.2.2)
Re: Japanische Fonts mit fcl-pdf
Hast du
drin in der Unit?
Code: Alles auswählen
{$codepage UTF8}
-
- Beiträge: 83
- Registriert: Sa 24. Nov 2012, 19:00
- OS, Lazarus, FPC: Windows10 und Linux 32 und 64Bit (L 2.2.2 FPC 3.2.2)
- CPU-Target: 32Bit und 64Bit
Re: Japanische Fonts mit fcl-pdf
Hallo Theo,
Danke für die Antwort.
Ich hab's rein gemacht -> Erfolg der japanische Text war komplett verschwunden.
Aber immerhin es hat etwas bewirkt. Vielleicht ist es der richtige Ansatz, was kann man noch so einstellen?
Danke für die Antwort.
Ich hab's rein gemacht -> Erfolg der japanische Text war komplett verschwunden.
Aber immerhin es hat etwas bewirkt. Vielleicht ist es der richtige Ansatz, was kann man noch so einstellen?
MfG,
petwey
Windows 10 und Linux 32 und 64Bit (L 2.2.2 FPC 3.2.2)
petwey
Windows 10 und Linux 32 und 64Bit (L 2.2.2 FPC 3.2.2)
-
- Beiträge: 582
- Registriert: Sa 22. Okt 2016, 23:12
- OS, Lazarus, FPC: W10, L 3.8
- CPU-Target: 32+64bit
- Wohnort: Dresden
Re: Japanische Fonts mit fcl-pdf
Also bei geht es so:
Project im Anhang.
Code: Alles auswählen
unit Unit1;
{$mode objfpc}{$H+}
{$codepage UTF8}
interface
uses
Classes, SysUtils, Forms, Controls, Graphics, StdCtrls,
// fcl-pdf
fppdf;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
public
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
var
PDF: TPDFDocument;
Section: TPDFSection;
Page: TPDFPage;
M, T: TPDFFloat;
I: Integer;
JP: String;
begin
JP:='これは完全な校正手順です。';
// Create document
PDF:=TPDFDocument.Create(Nil);
// Start document
PDF.StartDocument;
// Add a section, at least one section is needed.
Section:=PDF.Sections.AddSection;
Page:=PDF.Pages.AddPage;
// Add the Page to the Section
Section.AddPage(Page);
// Set some properties:
Page.PaperType := ptA4;
Page.UnitOfMeasure := uomMillimeters;
// Add font
I:=PDF.AddFont('NotoSansJP-Bold.ttf', 'Noto Sans JP');
// Font and text metrics
M:=10; // Margin
T:=PDFToMM(Page.Paper.H);
Page.SetFont(I,12);
Page.SetColor(clRed, false);
// Text
Page.WriteText(2*M, T-T/4-M, UTF8Encode(JP));
// Save to file
PDF.SaveToFile('fclpdf_demo_jp.pdf');
// free
PDF.Free;
end;
end.
- Dateianhänge
-
fclpdf_demo_jp.zip
- (3.35 MiB) 39-mal heruntergeladen
LG Maik
Windows 10,
- Lazarus 3.8 (stable) + fpc 3.2.2 (stable)
- Lazarus 4.99 (trunk) + fpc 3.3.1 (main/trunk)
Windows 10,
- Lazarus 3.8 (stable) + fpc 3.2.2 (stable)
- Lazarus 4.99 (trunk) + fpc 3.3.1 (main/trunk)
-
- Beiträge: 83
- Registriert: Sa 24. Nov 2012, 19:00
- OS, Lazarus, FPC: Windows10 und Linux 32 und 64Bit (L 2.2.2 FPC 3.2.2)
- CPU-Target: 32Bit und 64Bit
Re: Japanische Fonts mit fcl-pdf
Hallo Maik,
habe deine Tipps ausprobiert. Hatte aber erst Erfolg als ich auf die Schriftart YuGothicRegular.ttf gewechselt habe (Den Font YuGothR.ttc hab ich im Windows/Font - Verzeichnis gefunden und auf der Seite:
https://transfonter.org/ttc-unpack
in einen ttf umwandeln lassen.)
Danach hab ich
{$codepage UTF8}
und den Befehl
UTF8Encode
wieder weggelassen. Und es hat immer noch immer so halbwegs geklappt. Was mich gewundert hat!!
Immer mit dem selben Font YuGothicRegular.ttf habe ich vier Texte ausgegeben:
Hallo Peter <- Direkt im Befehl 'Hallo Peter'
これは完全な校正手順です。 <- über s:= 'これは完全な校正手順です。'
Hallo Pit <- Direkt im Befehl 'Hallo Pit'
これは完全な校正手順です。 <- Direkt im Befehl 'これは完全な校正手順です。'
Das Ergebnis mit unterschiedlichen Parametern zeigt das Bild im Anhang:
Irgendwas scheint hier mit den von mir heruntergeladenen japanischen Fonts nicht zu stimmern. Es ist eine Vermutung, aber kann es sein, dass fpfft nur bis zu einer bestimmten Version die TrueTypes unterstützt?
habe deine Tipps ausprobiert. Hatte aber erst Erfolg als ich auf die Schriftart YuGothicRegular.ttf gewechselt habe (Den Font YuGothR.ttc hab ich im Windows/Font - Verzeichnis gefunden und auf der Seite:
https://transfonter.org/ttc-unpack
in einen ttf umwandeln lassen.)
Danach hab ich
{$codepage UTF8}
und den Befehl
UTF8Encode
wieder weggelassen. Und es hat immer noch immer so halbwegs geklappt. Was mich gewundert hat!!
Immer mit dem selben Font YuGothicRegular.ttf habe ich vier Texte ausgegeben:
Hallo Peter <- Direkt im Befehl 'Hallo Peter'
これは完全な校正手順です。 <- über s:= 'これは完全な校正手順です。'
Hallo Pit <- Direkt im Befehl 'Hallo Pit'
これは完全な校正手順です。 <- Direkt im Befehl 'これは完全な校正手順です。'
Das Ergebnis mit unterschiedlichen Parametern zeigt das Bild im Anhang:
Irgendwas scheint hier mit den von mir heruntergeladenen japanischen Fonts nicht zu stimmern. Es ist eine Vermutung, aber kann es sein, dass fpfft nur bis zu einer bestimmten Version die TrueTypes unterstützt?
- Dateianhänge
-
- Vgl.png (64.05 KiB) 764 mal betrachtet
MfG,
petwey
Windows 10 und Linux 32 und 64Bit (L 2.2.2 FPC 3.2.2)
petwey
Windows 10 und Linux 32 und 64Bit (L 2.2.2 FPC 3.2.2)