So verwenden Sie private Schriftarten in PDFSharp
Ich versuche, einem PDF-Dokument Text hinzuzufügen, indem ich private, d. H. Nicht auf dem System installierte TrueType-Schriftarten verwende und Probleme habe. Ich verwende PDFSharp + MigraDoc WPF Version 1.32.2608.0 von NuGet.
Ich habe zahlreiche Artikel im Forum und auf StackOverFlow gefunden. Das Neueste istdieser Stapelüberlauf Artikel, der auf @ verweidieses Beispiel auf der PdfSharp-Site. Dieses Beispiel enthält jedoch den Code:
this.fontFamilies.Add(key, fontFamily);
on Zeile 22, aber ich kann keinen Verweis auf fontFamilies in Assembly finden.
Ich habe daher verfolgt, was aussah wie einExzellentes Beispiel, aber es funktioniert bei mir nicht. Wenn ich diesen Ansatz verwende, kann ich die Schriftart erfolgreich hinzufügen, aber wenn ich den Befehl verwende:
var font = new XFont(fontStyle.Name, new XUnit(fontStyle.SizePt, XGraphicsUnit.Point), XFontStyle.Regular, _fontOptions);
WofontStyle.Name
ist der Name der Schriftart ohne das # auf der Vorderseite. An diesem Punkt bricht PdfSharp in dasprivate void Initialise()
-Methode im PdfSharp.Drawing-Namespace.
Inspektion der Variablen imInitialise
Methode an dieser Stelle hat es:
this.family != null
Fund die Schriftart, d. H.this.typeface != null
Ich gehe davon aus, dass es auf der Linie brechenif (!typeface2.TryGetGlyphTypeface(out typeface))
aber ich kann nicht sicher sein.
Hinweis: Ich habe sowohl eine .ttf- als auch eine .otf-Schriftart ohne Erfolg ausprobiert.
Könnte mich bitte jemand in die richtige Richtung weisen?
Aktualisierem Ende habe ich zu @ gewechsePDFSharp WPF 1.50 beta als seine Schriftartbehandlung ist VIEL besser. Sieh dir das an SO post zu meinen zweiten Ausgaben und Informationen zumnew font resolver was mein Problem gelöst hat. Alles funktioniert jetzt gut.