Blokovu strukturu aj strukturu dokumentu mam uz rozlustenu celkom dobre - vsetko sice nepoznam, ale vedel by som vyrobit platny dokument:
Kód: Vybrat vše
CANON CARPS (Canon Advanced Raster Printing System) print format
================================================================
(reverse-engineered from LaserBase MF5730)
Data is organized into blocks, each with 20-byte header:
0: 0xCD - magic value
1: 0xCA - magic value
2: 0x10 - magic value
3: data type (0x00 = control data, 0x02 = print data)
4: 0x00
5: block type (0x11, 0x12, 0x13, 0x14, 0x16, 0x17, 0x18, 0x19, 0x1a)
6: 0x00
7: 0x01
8: length (high byte) of data following the header (number of bytes)
9: length (low byte)
10-19: padding (zeros)
maximum block (URB?) size is 4KB (4096B)
DOCUMENT structure:
-------------------
0x11: ???: 13 bytes: \x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00
0x12: document name: \x00\x04\x00\x11 + character count + name
0x12: user name: \x00\x06\x00\x11 + character count + name
0x12: ???: 10 bytes: \x00\x09\x00\x00\x07\x00\x00\x00\x00\x00
0x14: ???: 4 zero bytes
0x17: ???: 4 zero bytes
0x18: ???: 5 bytes: \x00\x2e\x82\x00\x00
0x18: image refinement: 3 bytes: \x08\x2d + \x01 (off) or \x02 (on)
0x18: toner save: 3 bytes: \x08\x5a + \x01 (off) or \x02 (on), if this block is not present, "printer default" is used
PRINT DATA
0x1a: end of print data: 1 byte: \x01
0x19: 0 bytes
0x16: 0 bytes
0x13: end of document: 1 zero byte
PRINT DATA structure:
---------------------
all print data is in blocks with data type 0x02, block type 0x1a
each page begins with a header (first page has header in separate block, others don't (?)), such as:
\x01.%@.P42;600;1J;ImgColor.\.[11h.[?7;600 I.[20't.[14;;;;;;p.[?2h.[1v.[600;1;0;32;;64;0'c
P42: ???
600: 600dpi (300 = 300dpi)
1J: ???
ImgColor: ???
20't = Plain paper (15't = Plain L, 20't = Plain, 30't = Heavy, 35't = Heavy H, 40't = Transparencies, 55't = Envelope)
14 = A4, 16 = A5, 30 = letter (??????????????), 60 = envelope monarch
1v: 1 copy (2v = 2 copies, 99v = 99 copies)
then page data follows in STRIPs, each STRIP in a block
each STRIP includes a header, such as:
\x01.[;4724;110;15.P
4724: strip witdh (in dots) for A4 (letter = 4863), 2362 (A4 300dpi)
110: strip height (in dots) (minimum is 1, maximum 110)
15: ???
then COMPRESSED DATA follows
strip can span multiple blocks
strip ends with 0x80 byte
each page ends with a 2-byte block containing \x01\x0c
print data ends with a 7-byte block containing \x01\x1b\x50\x30\x4a\x1b\x5cProblem mam vsak so samotnymi tlacovymi datami, resp. ich kompresnym algoritmom. Predpokladam, ze to bude cierno-biela bitmapa. Je to rozdelene do pasov, maximalne 110 bodov na vysku a na sirku podla rozmeru papiera a rozlisenia.
Tu su nejake jednoduche kusy dat, ale ani tie sa mi nepodarilo rozlusknut. Zistil som akurat to, ze prvych 14 B je nejaka hlavicka, na ofsete 0xA ma 2-bajtovu dlzku nasledujucich dat, ktore su ukoncene bajtom 0x80 (ten sa do dlzky nepocita).
5 rozne dlhych prazdnych riadkov (bloky s vyskou 1, sirka je v zatvorke). Rozdiel je vzdy len v 4 bajtoch, ale neviem, co znamenaju.
Kód: Vybrat vše
COMPRESSED DATA format:
-----------------------
single empty line:
A4:
300dpi (2362): 50 01 02 04 08 00 00 50 00 00 0C 00 00 00 BE BF 3E AF 3C 5C BC BC BD 3C BC BC 80
600dpi (4724): 50 01 02 04 08 00 00 50 00 00 0C 00 00 00 BE BF FD B8 4C A0 BC BC BD 3C BC BC 80
^^^^^^^^^^^
A5:
300dpi (1629): 50 01 02 04 08 00 00 50 00 00 0C 00 00 00 BE BF 78 AE 7C CC BC BC BD 3C BC BC 80
600dpi (3259): 50 01 02 04 08 00 00 50 00 00 0C 00 00 00 BE BF 1E 92 BF 3C BC BC BD 3C BC BC 80
^^^^^^^^^^^
envelope monarch:
300dpi (1045): 50 01 02 04 08 00 00 50 00 00 0C 00 00 00 BE BF 7A 3C 5C BC BC BC BD 3C BC BC 80
length ^^^^^ of ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
A dva bloky 4724x110 bodov - prvy plny (cierny) a druhy prazdny (biely). Rozdelil som ich na riadky tak, aby bolo vidiet, ze maju vacsinu dat rovnaku.
Kód: Vybrat vše
4724;110;15
full: 50 01 02 04 08 00 00 50 00 01 68 01 00 00
9C BC 88 AC F1 9C 4C 98 3C 6C FD 89 98 2E BF FD B8 68 2E F4 B1 B8 AF EE F4 B1 9C 1C BA 2C
EC BF F4 94 BD 18 A8 BC 6E B6 BC D5 B9 BC 88 3E 3C A6 FD FC B1 9C 1C BA 2C
EC BF F4 94 BD 18 A8 BC 6E B6 BC D5 B9 BC 88 3E 3C A6 FD FC B1 9C 1C BA 2C
EC BF F4 94 BD 18 A8 BC 6E B6 BC D5 B9 BC 88 3E 3C A6 FD FC B1 9C 1C BA 2C
EC BF F4 94 BD 18 A8 BC 6E B6 BC D5 B9 BC 88 3E 3C A6 FD FC B1 9C 1C BA 2C
EC BF F4 94 BD 18 A8 BC 6E B6 BC D5 B9 BC 88 3E 3C A6 FD FC B1 9C 1C BA 2C
EC BF F4 94 BD 18 A8 BC 6E B6 BC D5 B9 BC 88 3E 3C A6 FD FC B1 9C 1C BA 2C
EC BF F4 94 BD 18 A8 BC 6E B6 BC D5 B9 BC 88 3E 3C A6 FD FC B1 9C 1C BA 2C
EC BF F4 94 BD 18 A8 BC 6E B6 BC D5 B9 BC 88 3E 3C A6 FD FC B1 9C 1C BA 2C
EC BF F4 94 BD 18 A8 BC 6E B6 BC D5 B9 BC 88 3E 3C A6 FD FC B1 9C 1C BA 2C
EC BF F4 94 BD 18 A8 BC 6E B6 BC D5 B9 BC 88 3E 3C A6 FD FC B1 9C 1C BA 2C
EC BF F4 94 BD 18 A8 BC 6E B6 BC D5 B9 BC 88 3E 3C A6 FD FC B1 9C 1C BA 2C
EC BF F4 94 BD 18 A8 BC 6E B6 BC D5 B9 BC 88 3E 3C A6 FD FC B1 9C 1C BA 2C
EC BF F4 94 BD 18 A8 BC 6E B6 BC D5 B9 BC 88 3E 3C A6 FD FC B1 9C 1C BA 2C (13x)
EC BD 7C BC BC 80
empty: 50 01 02 04 08 00 00 50 00 01 5C 01 00 00
BE BF FD B8 4C 88 AC EC BF FD B9 BC 88 AC
EC BF F4 94 BD 18 A8 BC 6E B6 BC D5 B9 BC 88 3E 3C A6 FD FC B1 9C 1C BA 2C
EC BF F4 94 BD 18 A8 BC 6E B6 BC D5 B9 BC 88 3E 3C A6 FD FC B1 9C 1C BA 2C
EC BF F4 94 BD 18 A8 BC 6E B6 BC D5 B9 BC 88 3E 3C A6 FD FC B1 9C 1C BA 2C
EC BF F4 94 BD 18 A8 BC 6E B6 BC D5 B9 BC 88 3E 3C A6 FD FC B1 9C 1C BA 2C
EC BF F4 94 BD 18 A8 BC 6E B6 BC D5 B9 BC 88 3E 3C A6 FD FC B1 9C 1C BA 2C
EC BF F4 94 BD 18 A8 BC 6E B6 BC D5 B9 BC 88 3E 3C A6 FD FC B1 9C 1C BA 2C
EC BF F4 94 BD 18 A8 BC 6E B6 BC D5 B9 BC 88 3E 3C A6 FD FC B1 9C 1C BA 2C
EC BF F4 94 BD 18 A8 BC 6E B6 BC D5 B9 BC 88 3E 3C A6 FD FC B1 9C 1C BA 2C
EC BF F4 94 BD 18 A8 BC 6E B6 BC D5 B9 BC 88 3E 3C A6 FD FC B1 9C 1C BA 2C
EC BF F4 94 BD 18 A8 BC 6E B6 BC D5 B9 BC 88 3E 3C A6 FD FC B1 9C 1C BA 2C
EC BF F4 94 BD 18 A8 BC 6E B6 BC D5 B9 BC 88 3E 3C A6 FD FC B1 9C 1C BA 2C
EC BF F4 94 BD 18 A8 BC 6E B6 BC D5 B9 BC 88 3E 3C A6 FD FC B1 9C 1C BA 2C
EC BF F4 94 BD 18 A8 BC 6E B6 BC D5 B9 BC 88 3E 3C A6 FD FC B1 9C 1C BA 2C (13x)
EC BF F4 94 BD 18 A8 BC CC 80
Ak vidite nejaky system v tych datach, velmi by mi to pomohlo.