---
name: "t1asm"
section: "1"
platform: "linux"
package: "t1utils"
version: "1.42-3"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/t1asm"
---

# t1asm(1)

assemble PostScript Type 1 font

## NAME

t1asm - assemble PostScript Type 1 font

## SYNOPSIS

**t1asm** \[**-a**\|**-b**\] \[**-l** *length*\] \[*input* \[*output*\]\]

## DESCRIPTION

**t1asm** assembles Adobe Type 1 font programs into either PFA (hexadecimal) or PFB (binary) formats from a human-readable form. If the file *output* is not specified output goes to the standard output. If the file *input* is not specified input comes from the standard input.

**t1asm** tokenizes the charstring data and performs eexec and charstring encryption as specified in the \`\`black book,'' *Adobe Type 1 Font Format.*

The input must have a line of the form

```
/-|{string currentfile exch readstring pop}executeonly def
```

which defines the command, in this case \`-\|', that is to start charstring data. It is an error not to define such a command. Another common name for this command is \`RD'.

After the start of the **Subrs** array in the input, all open braces \`{' not in a comment begin a charstring. Such a charstring is terminated by the next non-comment close brace \`}'. Within such a charstring, only comments, integers, and valid charstring commands are allowed. Valid charstring command names can be found in *Adobe Type 1 Font Format* and other documents describing the newer Type 2 opcodes. The format within a charstring is unimportant as long as integers and commands are separated by at least a one whitespace (space, tab, newline) character. Note that within charstrings, comments are discarded because they cannot be encoded.

## OPTIONS

- **--pfa**, **-a**

  Output in PFA (ASCII) format.

- **--pfb**, **-b**

  Output in PFB (binary) format. This is the default.

- **--block-length=***num,* **-l** *num*

  PFB only: Set the maximum output block length to *num.* The default length is as large as memory allows.

- **--line-length=***num,* **-l** *num*

  PFA only: Set the maximum length of encrypted lines in the output to *num.* (These are the lines consisting wholly of hexadecimal digits.) The default is 64.

## EXAMPLES

```
% t1asm Utopia-Regular.raw > Utopia-Regular.pfb
% t1asm -a Utopia-Regular.raw > Utopia-Regular.pfa
```

## SEE ALSO

[**t1disasm**(1)](/t1disasm/1.md), [**t1ascii**(1)](/t1ascii/1.md), [**t1binary**(1)](/t1binary/1.md), [**t1unmac**(1)](/t1unmac/1.md), [**t1mac**(1)](/t1mac/1.md)

*Adobe Type 1 Font Format* is available free from Adobe as a PDF file. http://partners.adobe.com/asn/developer/PDFS/TN/T1\_SPEC.PDF

*The Type 2 Charstring Format,* also available from Adobe as a PDF file, describes the newer Type 2 operators, which are also used in some multiple-master Type 1 fonts like Adobe Jenson and Kepler. http://partners.adobe.com/asn/developer/PDFS/TN/5177.Type2.pdf

## AUTHORS

Lee Hetherington (ilh@lcs.mit.edu)\
 Eddie Kohler (ekohler@gmail.com)
