Как добавить водяной знак в существующий PDF-файл: несколько методов с примерами кода

Добавление водяного знака в документ PDF является общим требованием для различных целей, таких как брендинг, защита авторских прав или классификация документа. В этой статье мы рассмотрим несколько методов добавления водяных знаков в существующие PDF-документы на примерах кода. Предпочитаете ли вы Python, Java или другие языки программирования, мы вам поможем. Давайте погрузимся!

Метод 1: использование Python и библиотеки PyPDF2
PyPDF2 — популярная библиотека Python для работы с PDF-файлами. Он обеспечивает простой и эффективный способ добавления водяных знаков в PDF-файлы. Вот пример:

import PyPDF2
def add_watermark(input_pdf, output_pdf, watermark_text):
    pdf_reader = PyPDF2.PdfReader(input_pdf)
    pdf_writer = PyPDF2.PdfWriter()
    watermark_page = pdf_reader.getPage(0)  # Assuming watermark on the first page
    for page in pdf_reader.pages:
        page.merge_page(watermark_page)
        pdf_writer.addPage(page)
    with open(output_pdf, 'wb') as output_file:
        pdf_writer.write(output_file)
# Usage example
add_watermark('input.pdf', 'output.pdf', 'CONFIDENTIAL')

Метод 2: использование Java и библиотеки Apache PDFBox
Если вы предпочитаете Java, Apache PDFBox — это мощная библиотека, позволяющая манипулировать PDF-файлами. Вот пример добавления текстового водяного знака в PDF-файл с помощью Apache PDFBox:

import java.io.File;
import java.io.IOException;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
public class PDFWatermarker {
    public static void addWatermark(String inputPdf, String outputPdf, String watermarkText) throws IOException {
        PDDocument document = PDDocument.load(new File(inputPdf));
        PDPageContentStream contentStream;
        for (PDPage page : document.getPages()) {
            contentStream = new PDPageContentStream(document, page, PDPageContentStream.AppendMode.APPEND, true, true);
            contentStream.setFont(PDType1Font.HELVETICA_BOLD, 48);
            contentStream.setOpacity(0.3f);
            contentStream.beginText();
            contentStream.showTextAligned(watermarkText, 300, 400, TextAlignment.CENTER, 45);
            contentStream.endText();
            contentStream.close();
        }
        document.save(outputPdf);
        document.close();
    }
// Usage example
    public static void main(String[] args) throws IOException {
        addWatermark("input.pdf", "output.pdf", "CONFIDENTIAL");
    }
}

Метод 3: использование PDFtk (инструмента командной строки)
PDFtk — это инструмент командной строки, который предоставляет различные функции манипулирования PDF-файлами. Его можно использовать для добавления водяных знаков в файлы PDF. Вот пример команды:

pdftk input.pdf stamp watermark.pdf output output.pdf

Замените «watermark.pdf» на путь к PDF-файлу с водяным знаком.

В этой статье мы рассмотрели различные способы добавления водяных знаков в существующие PDF-документы. Мы рассмотрели Python с PyPDF2, Java с Apache PDFBox и PDFtk в качестве инструмента командной строки. Выберите метод, который соответствует вашим требованиям и предпочтениям языка программирования. Теперь добавить водяные знаки в PDF-файлы можно с помощью нескольких строк кода!

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