[feat:] FontResolver for Custom Fonts with ÄÖÜ
This commit is contained in:
49
CustomFontResolver.cs
Normal file
49
CustomFontResolver.cs
Normal file
@@ -0,0 +1,49 @@
|
||||
using PdfSharp.Pdf;
|
||||
using PdfSharp.Drawing;
|
||||
using PdfSharp.Fonts;
|
||||
using System.IO;
|
||||
using System;
|
||||
|
||||
namespace PLG_Exam;
|
||||
|
||||
public class CustomFontResolver : IFontResolver
|
||||
{
|
||||
private static readonly byte[] Cantarell_RegularFont;
|
||||
private static readonly byte[] Cantarell_BoldFont;
|
||||
|
||||
static CustomFontResolver()
|
||||
{
|
||||
// Schriftarten aus Dateien laden
|
||||
var basePath = Path.Combine(AppContext.BaseDirectory, "resources");
|
||||
var regularPath = Path.Combine(basePath, "Cantarell-Regular.ttf");
|
||||
var boldPath = Path.Combine(basePath, "Cantarell-Bold.ttf");
|
||||
|
||||
Cantarell_RegularFont = File.ReadAllBytes(regularPath);
|
||||
Cantarell_BoldFont = File.ReadAllBytes(boldPath);
|
||||
}
|
||||
|
||||
public string DefaultFontName => "Cantarell";
|
||||
|
||||
public byte[] GetFont(string faceName)
|
||||
{
|
||||
return faceName switch
|
||||
{
|
||||
"Cantarell-Regular" => Cantarell_RegularFont,
|
||||
"Cantarell-Bold" => Cantarell_BoldFont,
|
||||
_ => throw new FileNotFoundException($"Schriftart nicht gefunden: {faceName}")
|
||||
};
|
||||
}
|
||||
|
||||
public FontResolverInfo ResolveTypeface(string familyName, bool isBold, bool isItalic)
|
||||
{
|
||||
if (familyName == "Cantarell")
|
||||
{
|
||||
// Bold oder Regular zurückgeben
|
||||
return isBold
|
||||
? new FontResolverInfo("Cantarell-Bold")
|
||||
: new FontResolverInfo("Cantarell-Regular");
|
||||
}
|
||||
|
||||
throw new FileNotFoundException($"Schriftart nicht gefunden: {familyName}");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user