|
|
|
LShadow77 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 17.10.2011 Репутация: нет Всего: нет |
Здравствуйте!
Понадобилось конвертировать один PDF-файл в fb2. Поскольку ни один из перепробованных мною конверторов не справился с задачей должным образом, решил написать свой скрипт на Python. Т.к. данные потоков моего PDF-документа сжаты по алгоритму zlib/Flate (фильтр /FlateDecode), то пришлось реализовать собственный декомпрессор. Естественно, в целях отладки, стал декодировать различные данные, как из потоков PDF, так и из ZIP-архивов. И всё работало до тех пор, пока не натолкнулся на следующий фрагмент из 39 байт (собственно данные тут выделены, первые 2 байта 48 89 - заголовок zlib): Ошибка декомпрессии! Вот отладочный лог:
Здесь видно, что первые 9 байт декодировались нормально (строка "q\rq\r447 0", что похоже на истину), а вот дальше следует код Length/Distance. После декодирования получилось, что длина повторившейся последовательности равна 3, вот расстояние до неё аж 359, при том, что "скользящее окно" заполнено только на 9 байт! Здесь явно не порядок! Ну а в конце, данные неожиданно закончились без маркера конца 256. Вопрос: где ошибка? В PDF-файле? Но ведь он спокойно открывается. И этот поток каким-то образом прочитывается (проверял). В коде декомпрессора? Но я уже перепроверил всё что можно. Декодировал больше сотни разных данных, - всё работает как часы! Сбой - только на этом куске. Вот, собственно, бинарник: BadFile.dat BadFile.dat Если есть на форуме спецы по сжатию, то очень надеюсь на помощь, а то скоро крыша поедет! А если у вас есть собственная реализация алгоритма Inflate, то попробуйте декодировать прилагаемый файл и отпишитесь о результате. Заранее спасибо! |
|||
|
||||
LShadow77 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 17.10.2011 Репутация: нет Всего: нет |
И так, за три недели моего вынужденного отсутствия было 907 посещений и 0 ответов! Ну неужели нет никого, кто экспериментировал с flate-компрессией? Очень странно!
|
|||
|
||||
LShadow77 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 17.10.2011 Репутация: нет Всего: нет |
Не уж-то таки никому не интересно, а?!
|
|||
|
||||
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Форматы файлов и данных | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |