---
name: "hb-view"
section: "1"
platform: "linux"
package: "harfbuzz-utils"
version: "15.0.0-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/hb-view"
---

# hb-view(1)

View text with given font.

## NAME

hb-view - View text with given font.

## DESCRIPTION

### Usage:

-

  hb-view \[OPTION???\] \[FONT-FILE\] \[TEXT\]

View text with given font.

### Help Options:

- **-h**, **--help**

  Show help options

- **--help-all**

  Show all help options

- **--help-face**

  Options for the font face

- **--help-font**

  Options for the font instance

- **--help-variations**

  Options for font variations used

- **--help-text**

  Options for the input text

- **--help-text-context**

  Options for the input context text

- **--help-shape**

  Options for the shaping process

- **--help-features**

  Options for font features used

- **--help-view**

  Options for output rendering

- **--help-output**

  Options for the destination & form of the output

### Font-face options:

- **--font-file**=*filename*

  Set font file-name

- **-y**, **--face-index**=*index*

  Set face index (default: 0)

- **--face-loader**=*loader*

  Set face loader to use (default: ot)

-

  Supported face loaders are: ot/ft

- **--list-face-loaders**

  List available face loaders and quit

### Font-instance options:

- **--font-size**=*1*/2 integers or 'upem'

  Font size (default: 256)

- **--font-ppem**=*1*/2 integers

  Set x,y pixels per EM (default: 0; disabled)

- **--font-ptem**=*point-size*

  Set font point-size (default: 0; disabled)

- **--font-bold**=*1*/2 numbers; eg. 0.05

  Set synthetic bold (default: 0)

- **--font-grade**=*1*/2 numbers; eg. 0.05

  Set synthetic grade (default: 0)

- **--font-slant**=*slant* ratio; eg. 0.2

  Set synthetic slant (default: 0)

- **--font-funcs**=*impl*

  Set font functions implementation to use (default: ot)

-

  Supported font function implementations are: ot/ft

- **--list-font-funcs**

  List available font functions and quit

- **--ft-load-flags**=*integer*

  Set FreeType load-flags (default: 2)

### Variations options:

- **--named-instance**=*index*

  Set named-instance index (default: none)

- **--variations**=*list*

  Comma-separated list of font variations

-

  Variations are set globally. The format for specifying variation settings follows.  All valid CSS font-variation-settings values other than 'normal' and 'inherited' are also accepted, though, not documented below.

-

  The format is a tag, optionally followed by an equals sign, followed by a number. For example:

-

  "wght=500" "slnt=-7.5"

Text options:

If no text is provided, standard input is used for input.

- **--text**=*string*

  Set input text

- **--text-file**=*filename*

  Set input text file-name

- **-u**, **--unicodes**=*list* of hex numbers

  Set input Unicode codepoints

- **--single-par**

  Treat text as single paragraph

### Textual context options:

- **--text-before**=*string*

  Set text context before each line

- **--text-after**=*string*

  Set text context after each line

- **--unicodes-before**=*list* of hex numbers

  Set Unicode codepoints context before each line

- **--unicodes-after**=*list* of hex numbers

  Set Unicode codepoints context after each line

### Shape options:

- **--shapers**=*comma-separated* list

  Set shapers to use (default: graphite2,ot,fallback)

-

  Supported shapers are: graphite2/ot/fallback

- **--list-shapers**

  List available shapers and quit

- **--direction**=*ltr*/rtl/ttb/btt

  Set text direction (default: auto)

- **--language**=*BCP* 47 tag

  Set text language (default: $LANG)

- **--script**=*ISO-15924* tag

  Set text script (default: auto)

- **--bot**

  Treat text as beginning-of-paragraph

- **--eot**

  Treat text as end-of-paragraph

- **--preserve-default-ignorables**

  Preserve Default-Ignorable characters

- **--remove-default-ignorables**

  Remove Default-Ignorable characters

- **--invisible-glyph**

  Glyph value to replace Default-Ignorables with

- **--not-found-glyph**

  Glyph value to replace not-found characters with

- **--not-found-variation-selector-glyph**

  Glyph value to replace not-found variation-selector characters with

- **--utf8-clusters**

  Use UTF8 byte indices, not char indices

- **--cluster-level**=*0*/1/2/3

  Cluster merging level (default: 0)

- **--normalize-glyphs**

  Rearrange glyph clusters in nominal order

- **--unsafe-to-concat**

  Produce unsafe-to-concat glyph flag

- **--safe-to-insert-tatweel**

  Produce safe-to-insert-tatweel glyph flag

- **--glyphs**

  Interpret input as glyph string

- **--verify**

  Perform sanity checks on shaping results

### Features options:

- **--features**=*list*

  Comma-separated list of font features

-

  Features can be enabled or disabled, either globally or limited to specific character ranges.  The format for specifying feature settings follows.  All valid CSS font-feature-settings values other than 'normal' and the global values are also accepted, though not documented below. CSS string escapes are not supported. The range indices refer to the positions between Unicode characters, unless the **--utf8-clusters** is provided, in which case range indices refer to UTF-8 byte indices. The position before the first character is always 0.

- The format is Python-esque.

  Here is how it all works:

- Syntax:

  Value:    Start:    End:

-

  Setting value:

- "kern"

  1         0         ???         # Turn feature on

- "+kern"

  1         0         ???         # Turn feature on

- "-kern"

  0         0         ???         # Turn feature off

- "kern=0"

  0         0         ???         # Turn feature off

- "kern=1"

  1         0         ???         # Turn feature on

- "aalt=2"

  2         0         ???         # Choose 2nd alternate

-

  Setting index:

- "kern\[\]"

  1         0         ???         # Turn feature on

- "kern\[:\]"

  1         0         ???         # Turn feature on

- "kern\[5:\]"

  1         5         ???         # Turn feature on, partial

- "kern\[:5\]"

  1         0         5         # Turn feature on, partial

- "kern\[3:5\]"

  1         3         5         # Turn feature on, range

- "kern\[3\]"

  1         3         3+1       # Turn feature on, single char

-

  Mixing it all:

- "aalt\[3:5\]=2" 2

  3         5         # Turn 2nd alternate on for range

### View options:

- **--background**=*rrggbb*/rrggbbaa/none

  Set background color (default: #FFFFFF); use "none" for transparent

- **--foreground**=*rrggbb*/rrggbbaa\[,...\]

  Set foreground color (default: #000000)

- **--rainbow**

  Rotate glyph foreground colors through a default palette

- **--font-palette**=*index*

  Set font palette (default: 0)

- **--custom-palette**=*comma-separated* colors

  Custom palette

- **--line-space**=*units*

  Set space between lines (default: 0)

- **--font-extents**=*one* to three numbers

  Set font ascent/descent/line-gap (default: auto)

- **--margin**=*one* to four numbers

  Margin around output (default: 16)

- **--logical**

  Render to logical box instead of union of logical and ink boxes

- **--ink**

  Render to ink box instead of union of logical and ink boxes

- **--show-extents**

  Draw glyph extents

- **--draw**

  Force monochrome draw path (overrides auto-detect)

- **--paint**

  Force color paint path (overrides auto-detect)

### Output destination & format options:

- **-o**, **--output-file**=*filename*

  Set output file-name (default: stdout)

- **-O**, **--output-format**=*format*

  Set output format (default: png)

-

  Supported output formats are: png/svg/pdf/ps/eps/script/ansi

### Application Options:

- **--version**

  Show version numbers

- **-n**, **--num-iterations**=*N*

  Run N iterations (default: 1)

Shows image of rendering text with a given font in various formats.

## EXIT CODES

-

  0: Success.

-

  1: Option parsing failed.

-

  2: Failed loading font face.

-

  3: Operation failed.

-

  4: Failed setting font functions.

## ENVIRONMENT

-

  HB\_FACE\_LOADER=face-loader; Overrides the default face loader.

-

  HB\_FONT\_FUNCS=font-funcs; Overrides the default font-funcs.

-

  HB\_SHAPER\_LIST=shaper-list; Overrides the default shaper list.

## SEE ALSO

-

  [hb-view(1)](/hb-view/1.md), [hb-shape(1)](/hb-shape/1.md), [hb-raster(1)](/hb-raster/1.md), [hb-vector(1)](/hb-vector/1.md), [hb-subset(1)](/hb-subset/1.md), [hb-info(1)](/hb-info/1.md)

Find more information or report bugs at \<https://github.com/harfbuzz/harfbuzz\>
