codeberg.org/go-pdf/fpdf@v0.11.1/embedded.go (about)

     1  // Copyright ©2023 The go-pdf Authors. All rights reserved.
     2  // Use of this source code is governed by a MIT-style
     3  // license that can be found in the LICENSE file.
     4  
     5  /*
     6   * Copyright (c) 2014 Kurt Jung (Gmail: kurt.w.jung)
     7   *
     8   * Permission to use, copy, modify, and distribute this software for any
     9   * purpose with or without fee is hereby granted, provided that the above
    10   * copyright notice and this permission notice appear in all copies.
    11   *
    12   * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
    13   * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
    14   * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
    15   * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
    16   * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
    17   * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
    18   * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
    19   */
    20  
    21  package fpdf
    22  
    23  // Embedded standard fonts
    24  
    25  import (
    26  	"embed"
    27  	"io"
    28  	"strings"
    29  )
    30  
    31  //go:embed font_embed/*.json font_embed/*.map
    32  var embFS embed.FS
    33  
    34  func (f *Fpdf) coreFontReader(familyStr, styleStr string) (r io.ReadCloser) {
    35  	key := familyStr + styleStr
    36  	key = strings.ToLower(key)
    37  	emb, err := embFS.Open("font_embed/" + key + ".json")
    38  	if err == nil {
    39  		r = emb
    40  	} else {
    41  		f.SetErrorf("could not locate \"%s\" among embedded core font definition files", key)
    42  	}
    43  	return
    44  }