Данные 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

Я добавил вышеуказанный поток в заголовок грубых данных, и он хорошо декодировался.

Другие вопросы по тегам