VERIFIED SOLUTION i
X

How to customize the Vault gcdiduni.map file

UPDATED: September 26, 2017


Using the gcdiduni.map file

the gcdiduni.map 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 gcdiduni.map 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"

81934089A240F5F4

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"

408581999585844081A240978199A340

968640A3888540C48593A4A78540D796

8995A3A240A28388859485

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%"

40C193934093969587408489A2A38195

83854083819393A24081998540A2A482

918583A340A396408140F2F06C

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"

88854085958440968640E28597A38594

82859940A38889A240A88581994B4040

E38881959240A896A440869699408388

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

5A

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"

FFFFFFFFFFFFFFFF ""

FFFFFFFFFFFFFFFF ""

02 CFLid=2

00 reserved

00 Sectid=0

00 reserved

E7F0C8C5F0F8C9F0 "X0HE08I0"

FFFFFFFFFFFFFFFF ""

FFFFFFFFFFFFFFFF ""

03 CFLid=3

00 reserved

00 Sectid=0

00 reserved

E7F0C8C5F1F2C2F0 "X0HE12B0"

FFFFFFFFFFFFFFFF ""

FFFFFFFFFFFFFFFF ""

04 CFLid=4

00 reserved

00 Sectid=0

00 reserved

E7F0C2F1F2F8C8C4 "X0B128HD"

FFFFFFFFFFFFFFFF ""

FFFFFFFFFFFFFFFF ""

 

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

5A

0008D3A88A000001 BCF Begin Coded Font

 

Offset 0x0000000000000009

5A

000AD3A78A0000021901 CFC Coded Font Control

 

Offset 0x0000000000000014

5A

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

5A

0008D3A98A000004 ECF End Coded Font

 

What we want is the code page, "T1COD128"

 

 

AFP Decoder 7.1E2p0013

 

file: T1COD128

size: 1232

 

Offset 0x0000000000000000

5A

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 gcdiduni.map 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.


Downloads

  • No Downloads