One part of the extracted data (without filtering and unescape) is this:
4 0 3 26 6 40 12 75 11 352 15 718 14 1145 18 1849 19 2137 17 2324 22 2716 21 2996 10 3601 1 3649 27 3813 34 3862 36 4245 33 4425 39 4832 41 5101 38 5279 32 5590 25 5615 24 5766 <</OPM 1/Type/ExtGState>> <</R7 4 0 R>> <</R16 7 0 R/R17 8 0 R/R18 9 0 R>> <</FontBBox[0 -23 931 741]/CapHeight 741/MissingWidth 278/CharSet(/two/L/A/n/three/M/B/o/Y/N/C/Z/O/D/P/E/F/R/G/S/colon/I/U/J/a/V/space/zero/one)/Type/FontDescriptor/FontFile3 13 0 R/Descent -23/StemV 139/Flags 4/FontName/VJIFOY+Helvetica-BoldOblique/Ascent 741/ItalicAngle 0>> <</LastChar 111/BaseFont/VJIFOY+Helvetica-BoldOblique/Type/Font/Encoding/WinAnsiEncoding/Subtype/Type1/FontDescriptor 12 0 R/FirstChar 32/Widths[278 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 556 556 556 556 0 0 0 0 0 0 333 0 0 0 0 0 0 722 722 722 722 667 611 778 0 278 556 0 611 833 722 778 667 0 722 667 0 722 667 0 0 667 611 0 0 0 0 0 0 556 0 0 0 0 0 0 0 0 0 0 0 0 611 611]>> <</FontBBox[-18 -218 762 742]/CapHeight 742/MissingWidth 278/CharSet(/two/L/A/iacute/aacute/y/n/c/three/M/ordfeminine/B/uacute/z/o/d/Y/four/N/C/p/e/five/O/D/q/f/six/P/E/ntilde/r/g/seven/F/s/eight/R/G/oacute/t/i/nine/S/H/eacute/u/j/T/v/J/l/a/V/K/m/b/parenleft/parenright/space/comma/hyphen/period/zero/one)/Type/FontDescriptor/FontFile3 16 0 R/Descent -218/StemV 114/Flags 4/FontName/ULWQET+Helvetica/Ascent 742/ItalicAngle 0>> <</LastChar 250/BaseFont/ULWQET+Helvetica/Type/Font/Encoding/WinAnsiEncoding/Subtype/Type1/FontDescriptor 15 0 R/FirstChar 32/Widths[278 0 0 0 0 0 0 0 333 333 0 0 278 333 278 0 556 556 556 556 556 556 556 556 556 556 0 0 0 0 0 0 0 667 667 722 722 667 611 778 722 0 500 667 556 833 722 778 667 0 722 667 611 0 667 0 0 667 0 0 0 0 0 0 0 556 556 500 556 556 278 556 0 222 222 0 222 833 556 556 556 556 333 500 278 556 500 0 0 500 500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 556 0 0 0 0 0 0 0 556 0 0 0 278 0 0 0 556 0 556 0 0 0 0 0 0 556]>> <</Type/Encoding/BaseEncoding/WinAnsiEncoding/Differences[1/parenleft/nine/two/hyphen/seven/zero/eight/parenright/one/four/E/d/i/f/period/L/a/s/space/T/e/r/z/comma/P/l/y/A/m/c/C/slash/n/t/o/S/R/five/six/j/three/G/B/u/v/J/I/x/H/g/M/ntilde/h/F/D/N/p/U/b/eacute/q/ordmasculine/oacute/V/O]>> <</FontBBox[-161 -215 974 681]/CapHeight 681/MissingWidth 777/Type/FontDescriptor/Descent -215/StemV 146/FontFile2 20 0 R/Flags 4/FontName/KIGHPU+TTE19F6F90t00/Ascent 681/ItalicAngle 0>> <</LastChar 65/BaseFont/KIGHPU+TTE19F6F90t00/Type/Font/Encoding 18 0 R/Subtype/TrueType/FontDescriptor 19 0 R/FirstChar 1/Widths[333 500 500 333 500 500 500 333 500 500 667 500 278 333 250 611 500 389 250 611 444 389 389 250 611 278 444 667 778 444 667 278 556 278 500 556 667 500 500 278 500 722 667 556 444 500 389 500 778 500 889 556 556 667 722 722 500 722 500 444 500 300 500 667 722]>> <</FontBBox[0 -219 824 757]/CapHeight 757/MissingWidth 278/CharSet(/two/A/y/n/c/o/four/Z/O/D/E/r/F/R/G/t/i/S/H/eacute/u/colon/T/I/U/a/m/space/hyphen/one)/Type/FontDescriptor/FontFile3 23 0 R/Descent -219/StemV 123/Flags 4/FontName/XMEXXU+Helvetica-Bold/Ascent 757/ItalicAngle 0>> <</LastChar 233/BaseFont/XMEXXU+Helvetica-Bold/Type/Font/Encoding/WinAnsiEncoding/Subtype/Type1/FontDescriptor 22 0 R/FirstChar 32/Widths[278 0 0 0 0 0 0 0 0 0 0 0 0 333 0 0 0 556 556 0 556 0 0 0 0 0 333 0 0 0 0 0 0 722 0 0 722 667 611 778 722 278 0 0 0 0 0 778 0 0 722 667 611 722 0 0 0 0 611 0 0 0 0 0 0 556 0 556 0 0 0 0 0 278 0 0 0 889 611 611 0 0 389 0 333 611 0 0 0 556 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 556]>> <</R13 14 0 R/R9 11 0 R/R15 17 0 R/R11 21 0 R>> <</Parent 24 0 R/Type/Page/Contents 2 0 R/Resources<</ExtGState 3 0 R/ProcSet[/PDF/ImageB/ImageC/Text]/XObject 6 0 R/Font 10 0 R>>/MediaBox[0 0 595 842]/Rotate 0>> <</R12 28 0 R/R13 29 0 R/R14 30 0 R/R11 31 0 R>> <</Type/Encoding/BaseEncoding/WinAnsiEncoding/Differences[1/g38/g4/g90/g68/g18/g47/g94/g3/g24/g28/g39/g104/g127/g75/g69/g855/g58/g455/g894/g381/g374/g258/g396/g373/g272/g288/g437/g410/g349/g400/g100/g1006/g1005/g882/g895/g271/g286/g346/g367/g282/g336/g62/g856/g17/g87/g460/g876/g853/g1009/g1010/g448/g361/g296/g1013/g1011/g1004/g1008/g1012/g44/g377/g464/g351/g260/g395/g1007/g383]>> <</FontBBox[-18 -178 805 726]/CapHeight 726/MissingWidth 506/Type/FontDescriptor/Descent -178/StemV 120/FontFile2 37 0 R/Flags 4/FontName/EOZSTF+Calibri/Ascent 726/ItalicAngle 0>> <</LastChar 66/BaseFont/EOZSTF+Calibri/Type/Font/Encoding 34 0 R/Subtype/TrueType/FontDescriptor 36 0 R/ToUnicode 35 0 R/FirstChar 1/Widths[459 606 563 874 529 267 473 226 630 488 637 653 478 676 659 276 331 474 312 538 537 494 355 813 418 503 537 347 246 399 495 507 507 306 312 537 503 537 246 537 474 423 267 561 532 397 430 258 507 507 473 255 316 507 507 507 507 507 631 537 416 246 494 537 507 538]>> <</Type/Encoding/BaseEncoding/WinAnsiEncoding/Differences[1/g3/g18/g381/g367/g286/g336/g349/g75/g296/g272/g258/g282/g38/g396/g373/g288/g437/g410/g400/g87/g448/g374/g94/g460/g100/g44/g855/g24/g1013/g856/g1004/g1005/g351/g377/g346/g1012/g1007/g62/g260/g271/g853/g1008]>> <</FontBBox[0 -178 726 684]/CapHeight 683/MissingWidth 506/Type/FontDescriptor/Descent -178/StemV 108/FontFile2 42 0 R/Flags 4/FontName/VGBWEV+Calibri/Ascent 683/ItalicAngle 0>> <</LastChar 42/BaseFont/VGBWEV+Calibri/Type/Font/Encoding 39 0 R/Subtype/TrueType/FontDescriptor 41 0 R/ToUnicode 40 0 R/FirstChar 1/Widths[226 533 527 229 498 471 229 662 305 423 479 525 459 349 799 498 525 335 391 517 452 525 459 395 487 623 268 615 507 252 507 507 229 525 525 507 507 420 479 525 250 507]>> <</R9 33 0 R/R7 38 0 R>> <</Parent 24 0 R/Type/Page/Contents 26 0 R/Resources<</ProcSet[/PDF/ImageB/ImageC/Text]/XObject 27 0 R/Font 32 0 R>>/MediaBox[0 0 595 842]/Rotate 90>> <</ITXT(2.1.6)/Type/Pages/Count 2/Kids[1 0 R 25 0 R]>>
It seems our encoding table...
If we return to the unfiltered-extracted page of text that I posted above, and specifically to the portion of text that we want to decode, we see
/R15 7.68 Tf
111.001 0 Td
(..............)
The text is between the parenthesis, and it corresponds to the hex values 01 02 03 03 04 05 03 04 06 03 04 07 06 08, as I said.
We have to find, in the encoding table, what chars are supposed to represent that hex values.
Our portion of text is identified as
/R15. The encoding table has several font descriptors:
FontDescriptor 12 0 R
FontDescriptor 15 0 R
FontDescriptor 19 0 R
FontDescriptor 22 0 R
FontDescriptor 36 0 R
FontDescriptor 41 0 R
So, we go to the section of FontDescriptor 15, which is:
/Type/Font/Encoding/WinAnsiEncoding/Subtype/Type1/FontDescriptor 15 0 R/FirstChar 32/Widths[278 0 0 0 0 0 0 0 333 333 0 0 278 333 278 0 556 556 556 556 556 556 556 556 556 556 0 0 0 0 0 0 0 667 667 722 722 667 611 778 722 0 500 667 556 833 722 778 667 0 722 667 611 0 667 0 0 667 0 0 0 0 0 0 0 556 556 500 556 556 278 556 0 222 222 0 222 833 556 556 556 556 333 500 278 556 500 0 0 500 500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 556 0 0 0 0 0 0 0 556 0 0 0 278 0 0 0 556 0 556 0 0 0 0 0 0 556]>> <</Type/Encoding/BaseEncoding/WinAnsiEncoding/Differences[1/parenleft/nine/two/hyphen/seven/zero/eight/parenright/one/four/E/d/i/f/period/L/a/s/space/T/e/r/z/comma/P/l/y/A/m/c/C/slash/n/t/o/S/R/five/six/j/three/G/B/u/v/J/I/x/H/g/M/ntilde/h/F/D/N/p/U/b/eacute/q/ordmasculine/oacute/V/O]>>
The interesting part is bolded; it represents the substitution table of certain bytes of text, in order to make easier the file compression. Into brackets, it's formed by several fields separated by slashes, with the first field indicating the first byte correspondent to the next field. So, we have that
Byte Alias Char
01 parenleft (
02 nine 9
03 two 2
04 hyphen -
05 seven 7
06 zero 0
07 eight 8
08 parenright )
09 one 1
0A four 4
0B E E
0C d d
0D i i
0E f f
0F period .
10 L L
11 a a
12 s s
13 space
14 T T
15 e e
16 r r
17 z z
18 comma ,
19 P P
1A l l
1B y y
1C A A
1D m m
1E c c
1F C C
20 slash /
21 n n
22 t t
23 o o
24 S S
25 R R
26 five 5
27 six 6
28 j j
29 three 3
2A G G
2B B B
2C u u
2D v v
2E J J
2F I I
30 x x
31 H H
32 g g
33 M M
34 ntilde ñ
35 h h
36 F F
37 D D
38 N N
39 p p
3A U U
3B b b
3C eacute é
3D q q
3E ordmasculineº
3F oacute ó
40 V V
41 O O
Opening the PDF, is easy to realize that the encoding isn't arbitrary; it's made during the PDF creation process, assigning values to each character regarding its order in the original file.
Applying the encoding table to our coded array of bytes 01 02 03 03 04 05 03 04 06 03 04 07 06 08, we get
the string "(922-72-02-80)", which is, indeed, the formatted/coded text that we were searching.
So, apparently, the app needs to get the FontDescriptor value for a given block of coded text between parenthesis, search for that FontDescriptor in the encoding table, search for any Differences array and match our hex value with the character representation in the Differences array.
I'll try when I have some free time, and keep you informed...