Liebe Alle, ein wenig verzweifelt versuche ich unter Nutzung des tollen pdPDF-Module von Thorsten1867 Unicode-Schriften in das PDF einzubinden, um in der Ausgabe z.B. auch den kyrillische Zeichensatz (U+0400 bis U+04FF) - auch in italic und bold - nutzen zu können.
Ich habe es mit den Standardfonts (z.B. Arial) versucht, jedoch auch mit anderen True-Type-Fonts, die laut dp4fontviewer32 Unicode unterstützen und Glyphen für Kyrillisch beinhalten. Das Beispiel von Thorsten1867 funktioniert, jedoch gibt es für diesen Font keine Schnitte in italic oder bold. Folgende Probleme stellen sich regelmäßig ein:
1. Vor jeden String wird ein kleines Viereck oder schwarzes Viereck mit einem weißen Kreuz gesetzt und
2. zumindest der Adobe Acrobat Pro (bei anderen Viewern - z.B. SumatraPDF - ist das nicht so) gibt folgende Meldung aus: "In der Schrift [hier der Schriftname] ist der Wert für /Flags fehlerhaft"
3. Als Nebeneffekt ist mir noch aufgefallen, dass PDF::Bookmark nicht Unicode unterstützt (oder ich weiß nicht, wie). Hier werden die kyrillischen Zeichen als Fragezeichen ausgegeben.
Hier ein Beispielprogramm (font ArialMT (arial.ttf und Schnitte )sowie das Beispielprogramm in den Ordner Examples von pbPDF-Module kopieren)
Ich würde mich freuen, wenn jemand hierzu eine Idee hätte. Mir fällt jedenfalls nichts mehr ein. Danke!
Code: Alles auswählen
XIncludeFile "..\pbPDFModule.pbi"
Define.s Path2Font=""
Define.s Font="ArialMT-"
Define.s File=Font+"pbPDF-EmbedFont.pdf"
Define.s String=" <- "
Define.i i
For i=$0400 To $0410 ;testweise ein paar kyrillische Zeichen
String=String+Chr(i)
Next i
#PDF = 1
If PDF::Create(#PDF)
PDF::AddPage(#PDF)
Debug PDF::EmbedFont(#PDF, Path2Font+"arial.ttf", "ArialMT", "", PDF::#Unicode)
Debug PDF::EmbedFont(#PDF, Path2Font+"ariali.ttf", "ArialMT", "I", PDF::#Unicode)
Debug PDF::EmbedFont(#PDF, Path2Font+"arialbd.ttf", "ArialMT", "B", PDF::#Unicode)
Debug PDF::EmbedFont(#PDF, Path2Font+"arialbi.ttf", "ArialMT", "BI", PDF::#Unicode)
PDF::SetFont(#PDF,"ArialMT", "", 14)
PDF::PlaceText(#PDF,Font+"Regular"+String, 10, 20)
PDF::SetFont(#PDF, "ArialMT", "I", 14)
PDF::PlaceText(#PDF, Font+"Italic"+String, 10, 30)
PDF::SetFont(#PDF, "ArialMT", "B", 14)
PDF::PlaceText(#PDF, Font+"Bold"+string, 10, 40)
PDF::SetFont(#PDF, "ArialMT", "BI", 14)
PDF::PlaceText(#PDF, Font+"BoldItalic"+String, 10, 50)
PDF::BookMark(#PDF, "Bookmark"+string, 0, #PB_Default, #PB_Default)
PDF::Close(#PDF, File)
EndIf
RunProgram(File)
/code]