Программа для анализа PDF-документов в папке с подпапками
Обработка почтовых запросов часто требует быстрого учета PDF-файлов: узнать количество страниц, размер, имя. Ручной перебор сотен документов - долгий и трудоемкий процесс. В этой статье мы рассмотрим, как автоматизировать эту задачу: от готовых бесплатных решений до создания собственного скрипта на Python с выгрузкой отчета в Excel.
Готовые программы для анализа PDF в папках
Если вам нужно быстрое и бесплатное решение без программирования, обратите внимание на следующие утилиты:
- PDF-XChange Editor (бесплатная версия) - позволяет получить информацию о количестве страниц через встроенный инструмент «Документ > Свойства», но не массово для папок.
- Adobe Acrobat Reader - не имеет массовой выгрузки.
- PDFtk (PDF Toolkit) - консольная утилита, но требует написания скрипта.
К сожалению, готового официального бесплатного ПО для массового анализа PDF в папках с выгрузкой в Excel почти нет. Поэтому лучший путь - написать простой скрипт.
Создание утилиты на Python: пошаговый гайд
Python - идеальный выбор: библиотеки PyMuPDF (fitz) и openpyxl бесплатны и не имеют ограничений. Ниже - готовый код и инструкция.
Установка необходимых библиотек
Откройте командную строку и выполните:
pip install pymupdf openpyxlКод программы
Создайте файл pdf_analyzer.py со следующим содержимым:
import os
import fitz # PyMuPDF
from openpyxl import Workbook
def analyze_pdfs(folder_path):
wb = Workbook()
ws = wb.active
ws.append(["Имя файла", "Размер (байт)", "Количество страниц"])
for root, dirs, files in os.walk(folder_path):
for file in files:
if file.lower().endswith('.pdf'):
file_path = os.path.join(root, file)
try:
doc = fitz.open(file_path)
pages = doc.page_count
doc.close()
size = os.path.getsize(file_path)
ws.append([file, size, pages])
except Exception as e:
ws.append([file, "Ошибка", str(e)])
report_path = os.path.join(folder_path, "pdf_report.xlsx")
wb.save(report_path)
print(f"Отчет сохранен: {report_path}")
if __name__ == "__main__":
folder = input("Введите путь к папке: ")
analyze_pdfs(folder)Как использовать
- Сохраните код в файл
pdf_analyzer.py. - Запустите скрипт:
python pdf_analyzer.py. - Введите путь к папке (например,
C:\Users\Admin\Documents\PDFs). - Программа создаст файл
pdf_report.xlsxв той же папке.
Объяснение работы кода
os.walk() рекурсивно обходит все подпапки. Для каждого PDF-файла открывается документ через fitz.open(), извлекается количество страниц (page_count) и размер (os.path.getsize()). Данные записываются в Excel с помощью openpyxl. Ошибки (например, поврежденные файлы) логируются в отчет.
Расширение функционала
Вы можете легко добавить другие метрики: дату создания, количество слов или изображений. Для этого используйте методы doc.metadata и get_images() из PyMuPDF.
Таким образом, вы получаете мощный, бесплатный и настраиваемый инструмент для анализа PDF-документов в любых вложенных папках.