Стандартный ZLIB прекрасно справляется с распаковкой сримов между stream и endstream в PDF фаqлах.
Подозревал, что это корректно работает через HEX из-за нечитаемых символов.
Хотелось бы посмотреть на твоё решение.
Использование сервисов. Например, для извлечения текста (конкретно для распознания известной таблицы) в формате Stext программа MuPDF. Консольный модуль модуль mutool (сейчас доступна версия 2.4.0 для Windows) https://mupdf.readthedocs.io/en/latest/mutool-extract.html.
Пример:
"x:\mutool.exe" convert -o output.stext input.pdf
Более мощное решение по созданию, на мой взгляд, coherentpdf:
Нарисовать изменяемую печать можно так через cmd (свой шрифт):
"x:\cpdf.exe" input.pdf -add-text "Подписи присутствуют\nЛист %Page" -linewidth 0.75 -outline -bottomleft "152 27" -justify-center -load-ttf Gost="C:\WINDOWS\FONTS\GOST_A.TTF" -font Gost -font-size 12 -color "blue" -line-spacing 1 AND input.pdf -add-rectangle "100 26" -outline -bottomleft "150 25" -midline -linewidth 0.75 -color "blue" -o "x:\out.pdf"
"x:\cpdf.exe" "x:\input.pdf" -output-json -utf8 -output-json-parse-content-streams -o "x:\out.json"
Нарисовать картинку по координатам и размерам (alpha-канал не поддерживается в png):
"x:\cpdf.exe" input.pdf -draw -draw-jpeg stamp="x:\input.jpg" -mscale "0 0 250 50" -image stamp -outline "x:\output.PDF" -o "x:\input.pdf"
"x:\cpdf.exe" input.pdf -draw -draw-png stamp="x:\input.png" -mscale "0 0 250 50" -image stamp -outline "x:\output.PDF" -o "x:\input.pdf"
P.S. По моему, PDF самый неудобный формат для парсинга. И это очень мягко… Обычно матом.
Бесспорно. Распознавание таблиц по координатам текста - та еще "песня". Попроще будет, если знаешь размеры таблицы, калибруясь по координатам первого столбца таблицы.