Есть ли надежный способ определить, был ли PDF создан из файла Powerpoint?

StackOverflow https://stackoverflow.com/questions/1622411

  •  06-07-2019
  •  | 
  •  

Вопрос

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

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

Это было полезно?

Решение

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

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

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

Другие советы

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

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

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

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

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

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

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

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

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

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

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

Удачи тебе

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top