Проверить, содержит ли файл растровые или векторные элементы?(pdf, eps, ai) - PullRequest
4 голосов
/ 23 ноября 2011

Есть ли способ проверить, есть ли в файле растровые элементы? Мне было бы интересно сделать это для форматов .pdf, .eps и .ai.

Если файл только векторный, я конвертирую его в .svg, а если в нем есть некоторые растровые элементы, я должен конвертировать его в файл .png.

Я работаю в PHP, но я также могу использовать любые инструменты командной строки. Например, я рассматриваю возможность использования Inkscape для фактического преобразования.

Ответы [ 4 ]

4 голосов
/ 17 марта 2014

Вы можете запустить эту команду для PDF-файлов и проверить, существует ли что-либо растровое в файле:

  grep -c -i "/image" thisfile.pdf
0 голосов
/ 09 февраля 2019

Вы можете преобразовать изображение в формат EPS и выполнить поиск, если существует "/ ImageType". «/ ImageType» означает, что следующий объект является растровым изображением. Если он не существует во всем файле EPS, этот EPS является векторным файлом.

0 голосов
/ 15 июля 2015

Вы можете искать DeviceRGB в файлах EPS / AI

0 голосов
/ 23 ноября 2011

Нет, нет.

Ниже приведено теоретическое доказательство информатики для eps, которое доказывает, что запрошенное свойство не может быть вычислено.

PostScript (ps), а также Encapsulated PostScript (eps) - это полный язык программирования. В теоретической информатике существуют доказательства, которые говорят, что некоторые свойства программ, написанных на полных языках, не могут быть вычислены. Такое свойство, например, зависит от того, завершается ли данная программа когда-либо. Итак, мы знаем, что существует программа PostScript, где мы не можем сказать, завершается ли она. Если мы возьмем эту Программу, удалите из нее все растровые объекты и вставьте только один растровый объект, который будет напечатан в документе только тогда и только тогда, когда программа завершится. Мы делаем это, вставляя этот шаг растровой печати как последний шаг в каждую часть программы, которая может привести к завершению (непосредственно перед каждой командой выхода (если такая команда существует) и в конце основной). Теперь у нас есть программа PostScript, для которой мы не можем сказать, включает ли она печать растрового объекта или нет. Это действительно не может быть сказано, так как, если мы знали, включает ли это печать, мы также знаем, заканчивается ли оно, и мы уже знаем, что мы не можем вычислить это свойство. * 1005 что и требовалось доказать *

...