Есть ли надежный способ определить, был ли PDF создан из файла Powerpoint? - PullRequest
2 голосов
/ 26 октября 2009

Как видно из названия. Причина, по которой я спрашиваю, заключается в том, что мы конвертируем PDF-файлы в форматированный текст ASCII (используя pdftotext) и хотим отображать только те файлы, которые выглядят достаточно разумными.

PPT-файлы, как правило, содержат текст поверх изображений, диагональный текст и другие вещи, которые не очень хорошо транслируются в ASCII, поэтому мы хотели бы отфильтровать их, если сможем.

Ответы [ 8 ]

4 голосов
/ 29 ноября 2009

Приложение для создания PDF-файла указано в его метаданных XMP. Это довольно легко увидеть в Acrobat 9 (и, как я полагаю ранее): перейдите на File > Properties, щелкните Additional Metadata..., затем перейдите на Advanced, и он указан под Свойства XMP Core и Свойства PDF :

xmp:CreatorTool: Microsoft PowerPoint
pdf:Creator: Microsoft PowerPoint

Я предполагаю, что вы хотите найти это программно, поэтому вам нужно найти библиотеку для чтения этих метаданных, которая работает с вашим языком. Здесь - список некоторых инструментов XMP.

3 голосов
/ 26 ноября 2009

Краткий ответ:

Нет, я так не думаю.

Длинный ответ:

Нет, я так не думаю, потому что есть способы конвертировать файл PowerPoint в pdf, например, Adobe Acrobat и PDFCreator и многие другие. Конвертеры должны встраивать конкретную информацию в файл PDF, даже если вы найдете способ обнаружить PDF-файл PowerPoint из одного конвертера, тот же метод может не работать для другого.

Еще более длинный ответ:

Нет, я так не думаю из-за причин, описанных в «длинном ответе». И я не думаю, что обнаружение источника PDF - лучший подход к проблеме, которую вы пытаетесь решить. Не только PowerPoint производит наложение текста и изображений. Я думаю, что гораздо лучше определить фактическое расположение файла PDF. Если есть наложение изображения и текста, то вы выполняете некоторую фильтрацию или предварительную обработку, чтобы удовлетворить это.

1 голос
/ 01 декабря 2009

Все PDF-файлы могут иметь эту проблему независимо от их источника. Большинство настольных издательских комплектов способны выводить PDF и часто продаются с их высококачественными и яркими презентациями PDF ...

"Более разумный" метод - использовать анализатор PDF, ITextSharp или pdfNet ... и т. Д. Используя выбранную библиотеку, найдите все прямоугольники изображений и все текстовые прямоугольники, СОРТИРУЙТЕ прямоугольники, а затем посмотрите, происходит существенное наложение текста и изображений - игнорируется наложение изображений на изображения. Если это так, отклоните страницу и / или документ.

Это не будет идеально, но, по крайней мере, он поймает много PDF-файлов, которые не являются нормальными, независимо от источника. Другая эвристика для добавления будет включать в себя анализ цвета. (т. е. достаточно ли разные цвета в перекрывающейся области, чтобы обеспечить "нормальные" результаты?)

Удачи тебе

1 голос
/ 26 октября 2009

Ваши рассуждения очень произвольны - несомненно, имеется множество PPT-файлов без описываемых вами функций и множество PDF-файлов с , созданных из другого источника.

Теоретически, лучшим способом было бы просто обнаружить, когда возникают такие "нежелательные" ситуации. Однако, хотя формат PDF частично открыт (очевидно, только для чтения, так что это не совсем открытый формат), извлечение таких сложных данных будет невероятно трудным.

0 голосов
/ 02 декабря 2009

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

0 голосов
/ 01 декабря 2009

какой-то конвертер из ppt в pdf сохраняет создатель в комментариях в начале pdf.

0 голосов
/ 29 ноября 2009

В общем, программно определить (надежно), откуда пришел файл или как он был сгенерирован на основе его содержимого, нелегко. В конце концов, файл - это просто набор битов.

Если у вас нет много ресурсов, чтобы тратить средства на построение эвристики, чтобы определить, выглядит ли файл "достаточно вменяемым" в соответствии с вашими потребностями, я бы посчитал это задачей для людей.

0 голосов
/ 26 октября 2009

Возможно, его имя указано в информации об создателе или производителе, но у меня нет копии, чтобы проверить эту теорию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...