How should I decode string from PDF which uses such encoding?
As the specification explains:
9.10.2 Mapping Character Codes to Unicode Values
A conforming reader can use these methods, in the priority given, to map a character code to a Unicode value. Tagged PDF documents, in particular, shall provide at least one of these methods:
If the font dictionary contains a ToUnicode CMap, use that CMap to convert the character code to Unicode.
If the font is a simple font that uses one of the predefined encodings MacRomanEncoding, MacExpertEncoding, or WinAnsiEncoding, or that has an encoding whose Differences array includes only character names taken from the Adobe standard Latin character set and the set of named characters in the Symbol font:
a) Map the character code to a character name according to Table D.1 and the font’s Differences array.
b) Look up the character name in the Adobe Glyph List to obtain the corresponding Unicode value.
If the font is a composite font ... (not applicable in your case)
If these methods fail to produce a Unicode value, there is no way to determine what the character code represents in which case a conforming reader may choose a character code of their choosing.
(ISO 32000-1)
First of all, therefore, you should look for a ToUnicode map.
If there is none (as in case of your sample document), use the Encoding (predefined or differences).
And if your code is not mapped to something proper in the encoding, there according to the spec is no way to determine what the character code represents!
If the font in question is embedded, you might yet have a way out by parsing the embedded font program which may include its own mapping to Unicode.
Otherwise, though, this is where you can start guessing (or delegate to OCR).
But your assumption
It is used for numbers and special characters only.
already is wrong. If you look at your sample document, e.g. the two fonts F25 and F26 used on the first page of your document have a Differences array like this:
0
/.notdef
1
/dotaccent
/fi
/fl
/fraction
/hungarumlaut
/Lslash
/lslash
/ogonek
/ring
10
/.notdef
11
/breve
/minus
13
/.notdef
14
/Zcaron
/zcaron
/caron
/dotlessi
/dotlessj
/ff
/ffi
/ffl
22
/.notdef
30
/grave
/quotesingle
/space
/exclam
/quotedbl
/numbersign
/dollar
/percent
/ampersand
/quoteright
/parenleft
/parenright
/asterisk
/plus
/comma
/hyphen
/period
/slash
/zero
/one
/two
/three
/four
/five
/six
/seven
/eight
/nine
/colon
/semicolon
/less
/equal
/greater
/question
/at
/A
/B
/C
/D
/E
/F
/G
/H
/I
/J
/K
/L
/M
/N
/O
/P
/Q
/R
/S
/T
/U
/V
/W
/X
/Y
/Z
/bracketleft
/backslash
/bracketright
/asciicircum
/underscore
/quoteleft
/a
/b
/c
/d
/e
/f
/g
/h
/i
/j
/k
/l
/m
/n
/o
/p
/q
/r
/s
/t
/u
/v
/w
/x
/y
/z
/braceleft
/bar
/braceright
/asciitilde
127
/.notdef
130
/quotesinglbase
/florin
/quotedblbase
/ellipsis
/dagger
/daggerdbl
/circumflex
/perthousand
/Scaron
/guilsinglleft
/OE
141
/.notdef
147
/quotedblleft
/quotedblright
/bullet
/endash
/emdash
/tilde
/trademark
/scaron
/guilsinglright
/oe
157
/.notdef
159
/Ydieresis
160
/.notdef
161
/exclamdown
/cent
/sterling
/currency
/yen
/brokenbar
/section
/dieresis
/copyright
/ordfeminine
/guillemotleft
/logicalnot
/hyphen
/registered
/macron
/degree
/plusminus
/twosuperior
/threesuperior
/acute
/mu
/paragraph
/periodcentered
/cedilla
/onesuperior
/ordmasculine
/guillemotright
/onequarter
/onehalf
/threequarters
/questiondown
/Agrave
/Aacute
/Acircumflex
/Atilde
/Adieresis
/Aring
/AE
/Ccedilla
/Egrave
/Eacute
/Ecircumflex
/Edieresis
/Igrave
/Iacute
/Icircumflex
/Idieresis
/Eth
/Ntilde
/Ograve
/Oacute
/Ocircumflex
/Otilde
/Odieresis
/multiply
/Oslash
/Ugrave
/Uacute
/Ucircumflex
/Udieresis
/Yacute
/Thorn
/germandbls
/agrave
/aacute
/acircumflex
/atilde
/adieresis
/aring
/ae
/ccedilla
/egrave
/eacute
/ecircumflex
/edieresis
/igrave
/iacute
/icircumflex
/idieresis
/eth
/ntilde
/ograve
/oacute
/ocircumflex
/otilde
/odieresis
/divide
/oslash
/ugrave
/uacute
/ucircumflex
/udieresis
/yacute
/thorn
/ydieresis
which contains mappings for normal uppercase /A../Z and lowercase /a../z characters, too.
By the way,
Type1 font /Differences encoding uses strings in mapping of values for example 1 character is encoded to 'one'.
is not strictly correct, the '/' characters are part of the respective mapped value, e.g. /one, and as PDF objects these are not Strings but Names.