From 845888136482c81fd76860b57e254c0e8fa6c149 Mon Sep 17 00:00:00 2001 From: Kurt Jung Date: Wed, 4 Sep 2013 15:06:56 -0400 Subject: Set error condition if out-of-range Unicode rune is encountered in GetStringWidth --- fpdf.go | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'fpdf.go') diff --git a/fpdf.go b/fpdf.go index 7b286a2..a7fb350 100644 --- a/fpdf.go +++ b/fpdf.go @@ -658,9 +658,20 @@ func (f *Fpdf) SetTextColor(r, g, b int) { // Returns the length of a string in user units. A font must be selected. func (f *Fpdf) GetStringWidth(s string) float64 { + if f.err != nil { + return 0 + } w := 0 + count := rune(len(f.currentFont.Cw)) for _, ch := range s { - w += f.currentFont.Cw[ch] + if ch < count { + w += f.currentFont.Cw[ch] + } else { + if f.err == nil { + f.err = fmt.Errorf("Unicode strings not supported") + } + return 0 + } } return float64(w) * f.fontSize / 1000 } -- cgit v1.2.1-24-ge1ad