Вопрос или проблема
Существует несколько стандартов PDF:
- PDF/A: PDF/A-1a, PDF/A-2a или PDF/A-3a
- PDF/UA
- возможно, еще больше
Я хочу проверить с помощью Python, соответствует ли заданный PDF файл какому-либо из этих стандартов.
Я видел veraPDF, который, похоже, делает то, что мне нужно, но у меня есть тысячи PDF файлов в сложной директории, и я хочу получить статистику для подмножества из них. Поэтому я хочу выполнить эту проверку с помощью Python.
Библиотека QuickPDF от Foxit может это сделать, даже бесплатная версия Lite.
Возможно, её не было в момент, когда был задан вопрос, но у veraPDF есть интерфейс командной строки:
Интерфейс командной строки veraPDF — лучший способ обработки пакетов PDF файлов. Он разработан для интеграции со скриптовыми потоками работы или для вызова из программ через оболочку.
Вы можете использовать любой язык сценариев по вашему выбору, чтобы запустить CLI veraPDF и разобрать его вывод. В документации есть примеры, как выполнить валидацию.
Ответ или решение
Проверка соответствия PDF-файлов стандартам PDF/A и PDF/UA с помощью Python
Введение
В современном мире документооборота стандарты PDF становятся все более важными для обеспечения долговечности и доступности файлов. Стандарты, такие как PDF/A и PDF/UA, обеспечивают архивируемость и универсальную доступность документов. Для профессионалов в области ИТ, работающих с большими объемами файлов, необходимы инструменты для автоматической проверки соответствия PDF-файлов этим стандартам. В данной статье мы рассмотрим, как осуществить проверку соответствия PDF-файлов стандартам PDF/A (включая PDF/A-1a, PDF/A-2a и PDF/A-3a) и PDF/UA с помощью Python.
Обзор стандартов PDF
-
PDF/A – это стандарт, разработанный для архивирования документов в формате PDF. Он включает различные подкатегории, такие как:
- PDF/A-1a: обеспечивает полный доступ к документу для всех пользователей, включая поддержку структурированных данных.
- PDF/A-2a и PDF/A-3a: добавляют возможность встраивания других типов файлов и улучшают доступность.
-
PDF/UA – это стандарт, направленный на обеспечение универсальной доступности документов. Он требует, чтобы PDF-документы были созданы так, чтобы их могли использовать люди с ограниченными возможностями, включая поддержку экранных читалок.
Использование veraPDF для автоматизации
Одним из наиболее эффективных инструментов для проверки соответствия PDF-файлов стандартам является veraPDF. Это программа с открытым исходным кодом, которая предоставляет интерфейс командной строки, что позволяет легко интегрировать его в ваши скрипты на Python и обрабатывать большие объемы файлов.
Установка veraPDF
Чтобы использовать veraPDF, сначала необходимо установить Java и затем скачать последнюю версию veraPDF:
- Установите Java Development Kit (JDK).
- Скачайте veraPDF с официального сайта.
- Распакуйте архив и запомните путь к директории.
Запуск проверки через командную строку
После установки veraPDF, можно выполнить проверку PDF-файлов через командную строку:
java -jar veraPDF-*.jar --validate <path_to_pdf>
Этот шаблон запускает процесс проверки и выводит результат в консоль.
Интеграция с Python
Теперь давайте интегрируем проверку в Python. При помощи модуля subprocess
можно выполнить команду в терминале прямо из скрипта на Python.
import subprocess
import os
def validate_pdf(file_path):
command = ['java', '-jar', 'path/to/veraPDF.jar', '--validate', file_path]
try:
result = subprocess.run(command, capture_output=True, text=True)
if result.returncode == 0:
print(f"{file_path} соответствует стандарту PDF/A или PDF/UA")
else:
print(f"{file_path} не соответствует стандарту:\n{result.stderr}")
except Exception as e:
print(f"Ошибка при проверке файла {file_path}: {str(e)}")
def validate_directory(directory):
for root, _, files in os.walk(directory):
for file in files:
if file.lower().endswith('.pdf'):
validate_pdf(os.path.join(root, file))
# Использование
directory_to_check = '/path/to/pdf/files'
validate_directory(directory_to_check)
Обработка результатов
Благодаря описанному выше коду вы сможете проверить подкаталог и получить информацию о соответствии каждого PDF-файла. Вы можете сохранять результаты проверки в файл, преобразовывать их в статистику или использовать в других процессах.
Заключение
В заключение, автоматизированная проверка PDF-файлов на соответствие стандартам PDF/A и PDF/UA с помощью Python и veraPDF является мощным инструментом для деятельности в области документооборота и архивирования. Постоянный контроль соответствия файлам стандартам обеспечивает долговечность и доступность информации. Используя описанные методы, вы сможете эффективно управлять большим объемом PDF-файлов, лучше защищая их юридическую и практическую ценность.