Launch Week Day 2: Introducing Reports: An Extensible Reporting Framework for Socket Data.Learn More
Socket
Book a DemoSign in
Socket

zappem.net/pub/graphics/hershey

Package Overview
Dependencies
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

zappem.net/pub/graphics/hershey

Go Modules
Version
v0.6.0
Version published
Created
Source

hershey - a Go package for Hershey vector font data

Overview

The Hershey fonts are a convenient set of definitions of vector font data. This package provides a Go API to use them.

Getting started

The hershey package is bundled with an example program that shows most of the features of the package. For example:

$ git clone https://github.com/tinkerator/hershey.git
$ cd hershey
$ go run examples/query.go --banner="Read Me!"
         V                                                                                                                                   
 ............................................................................................................................................
 ............................................................................................................................................
 .############.........................................................#.......................#...............#..........................#..
 .#...........#........................................................#.......................#..............##..........................#..
 .#............#.......................................................#.......................#..............##..........................#..
 .#............#.......................................................#.......................##............#.#..........................#..
 .#.............#......................................................#.......................##............#.#..........................#..
 .#.............#......................................................#.......................##............#.#..........................#..
 .#.............#......................................................#.......................#.#..........#..#..........................#..
 .#............#...........#####.............#####..#...........#####..#.......................#.#..........#..#...........#####..........#..
 .#............#.........##.....#..........##.....#.#.........##.....#.#.......................#..#........#...#.........##.....#.........#..
 .#...........#.........#........#........#........##........#........##.......................#..#........#...#........#........#........#..
 .############.........#.........#.......#..........#.......#..........#.......................#..#........#...#.......#.........#........#..
 .#......#............#...........#.....#...........#......#...........#.......................#...#......#....#......#...........#.......#..
>.#.......#...........#...........#.....#...........#......#...........#.......................#...#......#....#......#...........#.......#..
 .#.......#...........#############.....#...........#......#...........#.......................#...#......#....#......#############.......#..
 .#........#..........#.................#...........#......#...........#.......................#....#....#.....#......#...................#..
 .#.........#.........#.................#...........#......#...........#.......................#....#....#.....#......#......................
 .#.........#.........#.................#...........#......#...........#.......................#.....#..#......#......#......................
 .#..........#........#.................#...........#......#...........#.......................#.....#..#......#......#......................
 .#...........#........#..........#......#..........#.......#..........#.......................#.....#..#......#.......#..........#..........
 .#...........#.........#........#........#........##........#........##.......................#......##.......#........#........#........#..
 .#............#.........##.....#..........##.....#.#.........##.....#.#.......................#......##.......#.........##.....#........#.#.
 .#.............#..........#####.............#####..#...........#####..#.......................#.......#.......#...........#####..........#..
 ............................................................................................................................................
 ............................................................................................................................................

You can list the known fonts (mapped to utf8 encoding) as follows:

$ go build examples/query.go
$ ./query --ls
2025/05/16 06:09:11 known fonts: ["astrology" "cursive" "futural" "futuram" "gothgbt" "gothgrt" "gothiceng" "gothicger" "gothicita" "gothitt" "rowmand" "rowmans" "rowmant" "scriptc" "scripts" "symbolic" "timesg" "timesi" "timesib" "timesr" "timesrb"]

Full help is availble with the --help option. Examples:

$ ./query --glyph=33

glyph 33: (-5,-13), (5,10)
      V      
 ............
 .....#......
 .....#......
 .....#......
 .....#......
 .....#......
 .....#......
 .....#......
 .....#......
 .....#......
 .....#......
 .....#......
 .....#......
>.....#......
 .....#......
 .....#......
 ............
 ............
 ............
 ............
 .....#......
 ....#.#.....
 .....#......
 ............
$ ./query --scan
... the full list of known glyphs in the default font (rowmans) ...

The original font data, in .jhf format, can be found in the jhfdata/hershey/ directory.

The query tool can also be used (with go1.24+) to convert these files from their original encoding to utf8 encoding using the translation files in the utf8 directory. For example, this will regenerate the fonts/rowmans.jhf file:

$ ./query --dir jhfdata/hershey --font rowmans --xlate utf8 --dest fonts
2025/05/11 16:30:41 wrote "fonts/rowmans.jhf"

Please feel free to contribute fixes to the utf8 translation files and add support for more fonts.

Bug reports and feature requests

The hershey package has been developed purely out of self-interest and offers no guarantee of fixes/support. That being said, if you would like to suggest a feature addition or suggest a fix, please use the bug tracker.

License information

The Hershey data (everything in the jhfdata/ sub-directory) has a very permissive license, covered by the file jhfdata/hershey/hershey.txt file. See the jhfdata/README.md for the lineage of this data.

For the rest of this package, see the LICENSE file: the same BSD 3-clause license as that used by golang itself.

FAQs

Package last updated on 24 Nov 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts