есть ли способ задать свойства метаданных заголовка и автора pdf-файла в python?

#python #pdf #metadata #title #author

Вопрос:

Мне нужно создать множество PDF-файлов, совместимых с ADA, из документов Word. Я использовал фрагмент кода из comtypes.client, который очень хорошо работает для создания PDF-файла, но когда я запускаю проверку специальных возможностей в PDF-файле, он выдает ошибку заголовка, и в нем указано мое имя автора, а не название моей организации. Есть ли какой-либо способ установить название и автора при создании PDF-файла или, в качестве альтернативы, после его завершения? Я бы предпочел использовать python, но если есть какие-либо другие более простые методы, я играю.

Я посмотрел на PyPDF2, но, похоже, он устанавливает только «пользовательские метаданные», а не фактически изменяет или устанавливает свойства заголовка/автора. (плюс фрагмент кода, который я пробовал из Интернета, постоянно возвращал ошибку — я не вставляю код, хотя и не думаю, что он делает то, что мне нужно в любом случае..)

Я не могу сказать, если что-то вроде pdftk делает то, что мне нужно, или нет…я не могу найти все равно, чтобы сделать это с бесплатной версией, и я вижу в этом примере https://sejh.wordpress.com/2014/11/26/changing-pdf-titles-with-pdftk/, но в лучшем случае это выглядит как это может работать на титул, но не автор, и я не уверен, если есть простой способ, чтобы запустить скрипт для многих PDF-файлов…

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

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

Очень признателен!

Комментарии:

1. В качестве дополнительного примечания, для ADA обычно требуется заголовок документа и настройка флага для отображения заголовка в строке заголовка приложения. Это не автор

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

Ответ №1:

я смог решить свою проблему на этапе документа Word, используя атрибут core_properties в docx Python (я не знал об этом атрибуте во время моего первоначального сообщения).

 import docx
doc = docx.Document()
cp = doc.core_properties
cp.author = 'author name'                
cp.title = 'title content'
cp.subject = 'subject content'
 

когда я затем использовал comtypes Python для pdf-файла Word doc, метаданные были успешно переданы.

Ответ №2:

Общая причина, по которой вы являетесь автором, заключается в том, что «Пользователь машины-это Автор, даже если это ваш секретарь», поэтому проще всего запустить приложение PDF в логине «Организации», но, как вы указываете, pdftk позволяет вам вносить изменения, поэтому придерживайтесь этого. Используйте Python для записи необходимых изменений в NewInfo.txt затем раскошелитесь, чтобы запустить pdftk.

введите описание изображения здесь

 InfoBegin
InfoKey: Creator
InfoValue: Stack OverFlow
InfoBegin
InfoKey: Producer
InfoValue: Status Quo
InfoBegin
InfoKey: Author
InfoValue: K Steinmann
InfoBegin
InfoKey: Title
InfoValue: Whatever You Want, Whatever You Need, dah dah dah...
 

pdftk input.pdf update_info NewInfo.txt output output.pdf

Комментарии:

1. спасибо — я думаю, что, возможно, нашел вариант на этапе Word doc, используя docx Python — я не знал, что у них есть модуль для настройки свойств документации. До сих пор кажется, что эти свойства передаются в pdf-файл после его создания. Однако я ценю ваше предложение — может быть, оно пригодится мне в будущем