This commit is contained in:
MarcWieland
2026-06-26 23:17:08 +02:00
parent 4a69095f30
commit 62e58fc9ad
8 changed files with 625 additions and 228 deletions
@@ -0,0 +1,41 @@
using System;
using System.IO;
using System.Reflection;
using PdfSharp.Fonts;
namespace timetracker.Server.Services
{
public class PdfFontResolver : IFontResolver
{
public byte[] GetFont(string faceName)
{
var assembly = Assembly.GetExecutingAssembly();
// Map faceName to Embedded Resource stream
string resourceName = faceName.ToLower() switch
{
"opensans-bold" => "timetracker.Server.Fonts.OpenSans-Bold.ttf",
_ => "timetracker.Server.Fonts.OpenSans-Regular.ttf"
};
using var stream = assembly.GetManifestResourceStream(resourceName);
if (stream == null)
{
throw new InvalidOperationException($"Could not load font resource '{resourceName}'");
}
using var ms = new MemoryStream();
stream.CopyTo(ms);
return ms.ToArray();
}
public FontResolverInfo ResolveTypeface(string familyName, bool isBold, bool isItalic)
{
if (isBold)
{
return new FontResolverInfo("OpenSans-Bold");
}
return new FontResolverInfo("OpenSans-Regular");
}
}
}