PDF, создаваемые разными конторами, как правило, неадекватно велики — страница чистого текста с парой простеньких картинок легко может занимать мегабайт. Мне давно интересно, что туда суют такого объемного, но не могу найти софта, который показывает список всех объектов в файле. Пробовал разные редакторы, но все они работают по принципу визуального указания объекта, и не показывают размеров.
Чем можно подробно просмотреть структуру PDF? Хоть в GUI, хоть в stdout.
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>PDF, создаваемые разными конторами, как правило, неадекватно велики — страница чистого текста с парой простеньких картинок легко может занимать мегабайт. Мне давно интересно, что туда суют такого объемного, но не могу найти софта, который показывает список всех объектов в файле. Пробовал разные редакторы, но все они работают по принципу визуального указания объекта, и не показывают размеров.
Обычно картинки там и занимают всё место. Просто здоровые суют. Есть сайты, которые "распаковывают" pdf онлайн. Можно ими посмотреть, какие там картинки лежат.
Здравствуйте, vsb, Вы писали:
vsb>Обычно картинки там и занимают всё место. Просто здоровые суют.
Это я как раз вижу. Но часто бывает, что видимые картинки небольшие, а файл все равно занимает сотни килобайт или мегабайты.
vsb>Есть сайты, которые "распаковывают" pdf онлайн.
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Я правильно понимаю, что оно исключительно под линукс? Если да, то под какие дистрибутивы? У меня есть в виртуалке старая убунта 10.4 — там нет gem.
Вроде кросплатформено — оно на руби написано (хотя может там ниже библиотеки линуксовые).
Gem — это пакеты Ruby. Нужно установить менеджер пакето типа RubyGems.
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>PDF, создаваемые разными конторами, как правило, неадекватно велики — страница чистого текста с парой простеньких картинок легко может занимать мегабайт. Мне давно интересно, что туда суют такого объемного, но не могу найти софта, который показывает список всех объектов в файле. Пробовал разные редакторы, но все они работают по принципу визуального указания объекта, и не показывают размеров.
ЕМ>Чем можно подробно просмотреть структуру PDF? Хоть в GUI, хоть в stdout.
M>Здравствуйте, Евгений Музыченко, Вы писали: ЕМ>>Чем можно подробно просмотреть структуру PDF? Хоть в GUI, хоть в stdout. https://github.com/itext/i7j-rups
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Здравствуйте, migel, Вы писали:
M>>https://github.com/itext/i7j-rups
ЕМ>Пробовал. Выглядит навороченно, но размеров объектов там нигде не видно.
в основном все большое в пдф укатывается в потоки так что нужно смотреть его атрибуты Length.
Здравствуйте, migel, Вы писали:
M>в основном все большое в пдф укатывается в потоки так что нужно смотреть его атрибуты Length.
В теории так. А практически Вы пробовали это делать? Эта убогая тулза не умеет даже раскрыть сразу все ветки, не говоря уже о поиске объектов определенного типа — нужно ходить по дереву и тыкать вручную, а там сотни узлов даже в простейших файлах. Сразу видно, что разработчики никогда не пытались делать с ее помощью что-либо мало-мальски серьезное.
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Здравствуйте, migel, Вы писали:
M>>в основном все большое в пдф укатывается в потоки так что нужно смотреть его атрибуты Length.
ЕМ>В теории так. А практически Вы пробовали это делать? Эта убогая тулза не умеет даже раскрыть сразу все ветки, не говоря уже о поиске объектов определенного типа — нужно ходить по дереву и тыкать вручную, а там сотни узлов даже в простейших файлах. Сразу видно, что разработчики никогда не пытались делать с ее помощью что-либо мало-мальски серьезное.
Обычно хождение по Xref (вкладка справа) помогает — там и типы ссылок есть.
P.S в Акробате (не Reader) есть встроенное средство — Preflight View Internal structure
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Здравствуйте, migel, Вы писали:
M>>Обычно хождение по Xref (вкладка справа) помогает — там и типы ссылок есть.
ЕМ>Хм, а это нормально, что в XREF сперва почти все позиции — "Indirect object", и только после прохода меняются на конкретные типы?
Это нормально (тм) так как ссылки не типизированы то тип можно определить только прочитав объект.
ЕМ>Изображения из потоков оно достает, а как опознать все остальное — текст, оформление?
Для этого нужно знать PostScript like язык ПДФ — так как описывается программа стэковой машины отрисовки.
в краткости сначала идут аргументы а потом команда что с ними делать. Tj например рисует текст по заданным координатам.
В связи с тонкостями связки глифы шрифта — кодировка текста то сам текст увидеть глазками тоже вряд ли получиццо.
ЕМ>И как там увидеть, где на странице расположен конкретный элемент?
В каждой странице есть ссылка на ContentStream и уж его разбирать
Здравствуйте, Буравчик, Вы писали:
Б>Вроде кросплатформено — оно на руби написано (хотя может там ниже библиотеки линуксовые).
Попробовал поставить вместе с Ruby под винду — лезет множество ошибок по несуществующим версиям MinGW и других библиотек, бросил.
Вообще, насколько с помощью PdfWalker можно разобраться с тем, какие объекты в PDF-документе имеют наибольший объем, и как они выглядят, чтобы можно было их найти и удалить? Например, он информативнее RUPS?
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>PDF, создаваемые разными конторами, как правило, неадекватно велики — страница чистого текста с парой простеньких картинок легко может занимать мегабайт. Мне давно интересно, что туда суют такого объемного, но не могу найти софта, который показывает список всех объектов в файле. Пробовал разные редакторы, но все они работают по принципу визуального указания объекта, и не показывают размеров.
ЕМ>Чем можно подробно просмотреть структуру PDF? Хоть в GUI, хоть в stdout.
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Я правильно понимаю, что оно исключительно под линукс? Если да, то под какие дистрибутивы? У меня есть в виртуалке старая убунта 10.4 — там нет gem.
10.4 — это уж ну очень старая. Я б не стал тратить время на возню с ней, поставить новую будет быстрее.