How to customize the Vault file

UPDATED: September 26, 2017

Using the file

the file resides in the resource directory.

Converting an afp file to pdf using text substitution requires that all characters in an an afp text line have a valid character mapping. Characters in afp are identified by a unique character name, or "Graphic Character Global Identifier". If ANY character present in a line of text does not have a valid mapping, the entire text string will be rendered as a graphic (resulting in loss of quality - and inability to select or search the text). Codes are limited to code points 0-0FF.

the file is a list of key identifiers, and the code they produce (4 digits, hex encoded). It should only contain symbols that cause substitution to fail.

SP200000 0027

SP190000 0027

SS680000 002D


The most common codes to fail include left/right quotes, dashes, and special regional symbols.

in the previous example, we map

LEFT SINGLE QUOTATION MARK (SP190000) and RIGHT SINGLE QUATATION MARK (SP200000) to a standard single quatation mark (0027 hex)

En Dash is SS680000 - and maps to 002D hex '-'


You can use AFPDECODE commandline (or decode page in service client) to get a low level dump of a page if needed.

look for the text pattern that does not convert to pdf properly. Look for symbols that don't appear "right" in the decode dump.


afpdecode example:

03F103 SCFL Set Coded Font Local (LID=3)

04C70052 AMI Absolute Move Inline (Icnew=Io+82)

04D30845 AMB Absolute Move Baseline (Bcnew=Bo+2117)

11DB TRN Transparent Data

C39695879981A3A49381A3899695A2 "Congratulations"

03F101 SCFL Set Coded Font Local (LID=1)

04C7005A AMI Absolute Move Inline (Icnew=Io+90)

04D308A5 AMB Absolute Move Baseline (Bcnew=Bo+2213)

1ADB TRN Transparent Data

E896A4994083A499998595A340A396A3 "Your current total is 54"


04C7005A AMI Absolute Move Inline (Icnew=Io+90)

04D308D5 AMB Absolute Move Baseline (Bcnew=Bo+2261)

3DDB TRN Transparent Data

D7968995A3A240819985408285899587 "Points are being earned as part of the Deluxe Points scheme"




03F102 SCFL Set Coded Font Local (LID=2)

04C70042 AMI Absolute Move Inline (Icnew=Io+66)

04D30930 AMB Absolute Move Baseline (Bcnew=Bo+2352)

3FDB TRN Transparent Data

E2D7C5C3C9C1D340D6C6C6C5D94B4B4B "SPECIAL OFFER... All long distance calls are subject to a 20%"




04C70042 AMI Absolute Move Inline (Icnew=Io+66)

04D30960 AMB Absolute Move Baseline (Bcnew=Bo+2400)

48DB TRN Transparent Data

8489A28396A495A340A495A3899340A3 "discount until the end of September this year. Thank you for ch"




9696A2899587 "oosing"

04C70042 AMI Absolute Move Inline (Icnew=Io+66)

04D30990 AMB Absolute Move Baseline (Bcnew=Bo+2448)

0FDB TRN Transparent Data

E3D9E8D4C540E3859385839694 "TRYME Telecom"


0008D3A8C9000000 BAG Begin Active Environment Group


Offset 0x000000000005B246


007CD3B18A000000 MCF-1 Map Coded Font Format-1 (C)

1C RGLength=28

000000 reserved

01 CFLid=1

00 reserved

00 Sectid=0

00 reserved

E7F0C8C5F0F8D9F0 "X0HE08R0"



02 CFLid=2

00 reserved

00 Sectid=0

00 reserved

E7F0C8C5F0F8C9F0 "X0HE08I0"



03 CFLid=3

00 reserved

00 Sectid=0

00 reserved

E7F0C8C5F1F2C2F0 "X0HE12B0"



04 CFLid=4

00 reserved

00 Sectid=0

00 reserved

E7F0C2F1F2F8C8C4 "X0B128HD"




look up the offending code and related font. You can get the fontname "X0B128HD", then decode the font directly using afpdecod. The font should reside in your resource directory.


file: X0B128HD

size: 63


Offset 0x0000000000000000


0008D3A88A000001 BCF Begin Coded Font


Offset 0x0000000000000009


000AD3A78A0000021901 CFC Coded Font Control


Offset 0x0000000000000014


0021D38C8A000003 CFI Coded Font Index

C3F0C2F1F2F8C8C4 "C0B128HD"

E3F1C3D6C4F1F2F8 "T1COD128"

0000 Specified Vertical Font Size 0

0000 Specified Horizontal Scale Factor 0

00000000 Reserved

00 Section Number 0 (Single Byte)


Offset 0x0000000000000036


0008D3A98A000004 ECF End Coded Font


What we want is the code page, "T1COD128"



AFP Decoder 7.1E2p0013


file: T1COD128

size: 1232


Offset 0x0000000000000000


0008D3A887000001 BCP Begin Code Page

(see attached document for full readout from AFP decode)


Now we look up the code point. Look up the hex code of the character you want to substitute. For example. code point 0xB6 maps to UC010106.


Use this code point name as your entry. The second map to entry is the hex code, and you'll have to look it up in the individual font table. Usually, these are ansi entries.


  • No Downloads