From 3245fe4122e9c6dbf604bcfeb9aa52c53a3649e4 Mon Sep 17 00:00:00 2001 From: xiaoqidun Date: Fri, 2 Jan 2026 12:46:48 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E5=AD=97=E4=BD=93=E7=BB=98=E5=88=B6):=20?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=AD=97=E4=BD=93=E7=BB=98=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ofdgo_renderer.go | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/ofdgo_renderer.go b/ofdgo_renderer.go index 4d12c76..38e91a6 100644 --- a/ofdgo_renderer.go +++ b/ofdgo_renderer.go @@ -480,6 +480,14 @@ func (r *Renderer) renderText(ctx *canvas.Context, obj TextObject, pageH float64 if obj.Italic { fontStyle |= canvas.FontItalic } + if of, ok := r.Reader.fontCache[obj.Font]; ok { + if of.Bold { + fontStyle |= canvas.FontBold + } + if of.Italic { + fontStyle |= canvas.FontItalic + } + } ff := r.loadFont(obj.Font) face := ff.Face(sizePt, textColor, fontStyle, canvas.FontNormal) for _, tc := range obj.TextCode { @@ -534,7 +542,14 @@ func (r *Renderer) loadFont(fontID string) *canvas.FontFamily { ff := canvas.NewFontFamily(of.FontName) if of.FontFile != "" { if fontData, err := r.Reader.ResData(of.FontFile); err == nil { - if err := ff.LoadFont(fontData, 0, canvas.FontRegular); err == nil { + fontStyle := canvas.FontRegular + if of.Bold { + fontStyle |= canvas.FontBold + } + if of.Italic { + fontStyle |= canvas.FontItalic + } + if err := ff.LoadFont(fontData, 0, fontStyle); err == nil { r.FontMap[fontID] = ff return ff }