barbitoff programmer`s blog

Здесь я публикую заметки из программерской жизни: грабли, на которые мне случилось наступить, проблемы, для которых было найдено элегантное (или не очень) решение, а также все, с чем мне пришлось столкнуться и чем хотелось бы поделиться =)
PS Если хотите меня поблагодарить - на странице есть 3 места, чтобы это сделать =)

четверг, 20 ноября 2014 г.

Apache PdfBox: WARN (XrefTrailerResolver.java:199) Did not found XRef object at specified startxref position 18252

Проблема

При обработке pdf-файла с помощью Apache PdfBox в лог попадает warning:
WARN (XrefTrailerResolver.java:199) Did not found XRef object at specified startxref position 18252

Причина

Если открыть pdf-ку в текстовом редакторе, можно увидеть, что в ней есть блок:
startxref
18252
представляющий из себя ссылку на таблицу перекрестных ссылок ("cross-reference table"). 
Посмотрев в hex-редакторе на адрес 18252 (в шестнадцатеричной системе счисления - это 0x474c) я увидел, что по нему, вместо начала таблицы (ключевого слова "xref") идет окончание ключевого слова endobj, а искомое "xref" идет на 4 байта дальше:

Если поправить ссылку в startxref на корректную (в моем случае - 18256), то warning уходит.


Комментариев нет:

Отправить комментарий