Программа для анализа 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)

    Как использовать

    1. Сохраните код в файл pdf_analyzer.py.
    2. Запустите скрипт: python pdf_analyzer.py.
    3. Введите путь к папке (например, C:\Users\Admin\Documents\PDFs).
    4. Программа создаст файл pdf_report.xlsx в той же папке.

    Объяснение работы кода

    os.walk() рекурсивно обходит все подпапки. Для каждого PDF-файла открывается документ через fitz.open(), извлекается количество страниц (page_count) и размер (os.path.getsize()). Данные записываются в Excel с помощью openpyxl. Ошибки (например, поврежденные файлы) логируются в отчет.

    Расширение функционала

    Вы можете легко добавить другие метрики: дату создания, количество слов или изображений. Для этого используйте методы doc.metadata и get_images() из PyMuPDF.

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

    Часто задаваемые вопросы