Данные jbig2 в формате pdf не являются действительными данными jbig2. Неправильная магия
Я хотел бы взять некоторые данные jbig2 из файла PDF и загрузить их с помощью libjbig2dec ( http://sourceforge.net/projects/jbig2dec)
По какой-то причине данные jbig2 в pdf-файле начинаются с этого:
00000000 00 00 00 00 30 01 01 00 00 00 13 00 00 0a 5e 00
00000010 00 0f c3 00 00 2e 23 00 00 2e 23 00 00 00 00 00
00000020 00 01 26 01 01 ff ff ff ff 00 00 0a 5e 00 00 0f
00000030 c3 00 00 00 00 00 00 00 00 00 00 03 ff fd ff 02
00000040 fe fe fe ab f3 d0 fe 9e 92 d8 9f 63 ae 67 79 b8
00000050 81 ff 57 33 90 a4 ee c2 af c8 80 dc 0d 60 1e 86
Но действительный файл jbig2 должен начинаться с этой магии:
0x97, 0x4a, 0x42, 0x32, 0x0d, 0x0a, 0x1a, 0x0a
Что тут происходит?
2 ответа
Формат pdf удаляет заголовок и хвост файла jbig2, как указано в разделе PDF, версия 1.7 (ISO 32000-1:2008). 7.4.7 Фильтр JBIG2Decode
Кроме того, некоторые PDF-файлы содержат потоки jbig2 с последним сегментом неопределенного размера (ff ff ff ff). libjbig2dec не может справиться с этим.
В некоторых PDF-файлах отсутствует заголовок JBIG2, и вот один из известных потоков для формата файла jb2.
974A42320D0A1A0A0100000001000000003E00010000006820000000536F7572636500506F776572204A4249472D3220456E636F646572202D2054686520556E6976657273697479206F66204272697469736820436F6C756D626120616E6420496D61676520506F77657220496E632E0056657273696F6E00312E302E3000000000
Я добавил вышеуказанный поток в заголовок грубых данных, и он хорошо декодировался.