diff --git a/CustomFontResolver.cs b/CustomFontResolver.cs new file mode 100644 index 0000000..cb62106 --- /dev/null +++ b/CustomFontResolver.cs @@ -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}"); + } +}