Как создать новый PDF с водяным знаком, строкой и подписью с помощью скрипта?

Вопрос или проблема

У нас есть папка с более чем 900 PDF-документами, и их нужно проштамповать начиная с января.
Штамп доступен в формате JPEG или PNG, а также содержит строку с различными символами для авторитетов или компаний, и если это возможно, они также должны быть подписаны.
Я нашел эти ответы, но не совсем уверен, как действовать дальше.

Штамп PDF с углом с использованием CLI
Изменение PDF-файлов
Открытие подписанных PDF в Linux
Как я могу решить эту задачу с помощью скрипта, и какие расширения мне нужны?
Или могу ли я совместить два расширения?
Обычно мы работаем с Windows, но недавно получили два настольных компьютера с Ubuntu.
Я не администратор, просто конечный пользователь, и у меня есть опыт работы с Bash и Perl, а также с Debian или Ubuntu.
Буду очень признателен за помощь.

Ответ или решение

Создание PDF-документов с водяным знаком, строкой и подписью с помощью скрипта — это задача, которая может быть решена с использованием различных инструментов и библиотек. В данном ответе я опишу, как вы можете выполнить эту задачу в среде Ubuntu, используя Python и такие библиотеки, как PyPDF2, Pillow и fpdf2. Эти инструменты позволят вам автоматизировать процесс обработки PDF-документов.

Шаги для создания нового PDF с водяным знаком и подписью

1. Установка необходимых библиотек

Вам понадобятся следующие библиотеки. Установите их с помощью pip:

pip install PyPDF2 Pillow fpdf2

2. Подготовка графического файла водяного знака

Убедитесь, что у вас есть изображение водяного знака в формате JPEG или PNG, и сохраните его в удобное место.

3. Создание скрипта на Python

Создайте файл watermark_pdf.py и добавьте в него следующий код:

import os
from PyPDF2 import PdfWriter, PdfReader
from PIL import Image
from fpdf import FPDF

def add_watermark(input_pdf, output_pdf, watermark_image, watermark_text):
    # Чтение входного PDF
    reader = PdfReader(input_pdf)
    writer = PdfWriter()

    # Создание PDF с водяным знаком
    for page in reader.pages:
        # Настройка страницы с водяным знаком
        page.merge_page(create_watermark_pdf(watermark_image, watermark_text))
        writer.add_page(page)

    # Запись нового PDF
    with open(output_pdf, 'wb') as f:
        writer.write(f)

def create_watermark_pdf(watermark_image, watermark_text):
    # Создание временного PDF для водяного знака
    pdf = FPDF()
    pdf.add_page()

    # Добавление изображения водяного знака
    pdf.image(watermark_image, x=0, y=0, w=210, h=297)  # A4 размер
    pdf.set_font('Arial', 'B', 50)
    pdf.set_text_color(255, 0, 0)  # Красный цвет для текста
    pdf.text(50, 150, watermark_text)  # X, Y координаты текста

    # Сохранение временного PDF
    temp_pdf = 'temp_watermark.pdf'
    pdf.output(temp_pdf)

    # Возврат нового PDF с водяным знаком
    return PdfReader(temp_pdf).pages[0]

def main(folder_path, watermark_image, watermark_text):
    for filename in os.listdir(folder_path):
        if filename.endswith('.pdf'):
            input_pdf = os.path.join(folder_path, filename)
            output_pdf = os.path.join(folder_path, f'watermarked_{filename}')
            add_watermark(input_pdf, output_pdf, watermark_image, watermark_text)
            print(f'Обработан файл: {output_pdf}')

if __name__ == '__main__':
    folder_path = '/path/to/your/pdf/folder'  # Укажите путь к папке с PDF
    watermark_image = '/path/to/watermark/image.png'  # Укажите путь к изображению водяного знака
    watermark_text = 'Авторитет/Компания'  # Укажите текст для водяного знака
    main(folder_path, watermark_image, watermark_text)

4. Запуск скрипта

После того как вы настроили скрипт, запустите его в терминале:

python3 watermark_pdf.py

5. Добавление подписи (если необходимо)

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

Заключение

Работа с PDF-документами может представлять собой определенные сложности, особенно если нужно выполнять несколько операций. Использование Python и простых библиотек делает этот процесс более доступным. Убедитесь, что у вас есть резервные копии оригинальных PDF-документов перед началом работы.

Если у вас возникнут дополнительные вопросы или потребуется помощь, не стесняйтесь обращаться к сообществу разработчиков или мне.

Оцените материал
Добавить комментарий

Капча загружается...