PDF-документы с водяными знаками: подробное руководство с примерами кода

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

Метод 1: использование PyPDF2 (Python)
PyPDF2 — это библиотека Python, позволяющая манипулировать PDF-файлами. Вот пример того, как вы можете использовать PyPDF2 для добавления водяного знака в PDF:

import PyPDF2
def add_watermark(input_pdf, watermark_text, output_pdf):
    watermark = PyPDF2.PdfFileReader(watermark_text)
    input_file = PyPDF2.PdfFileReader(input_pdf)
    output_file = PyPDF2.PdfFileWriter()
    for page_num in range(input_file.getNumPages()):
        page = input_file.getPage(page_num)
        page.mergePage(watermark.getPage(0))
        output_file.addPage(page)
    with open(output_pdf, 'wb') as file:
        output_file.write(file)
# Usage
add_watermark('input.pdf', 'watermark.pdf', 'output.pdf')

Метод 2: использование iText (Java)
iText — мощная библиотека Java для работы с PDF-файлами. Вот пример того, как вы можете использовать iText для добавления водяного знака в PDF:

import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.*;
import java.io.FileOutputStream;
import java.io.IOException;
public class WatermarkPDF {
    public static void addWatermark(String inputPdf, String outputPdf, String watermarkText) throws IOException, DocumentException {
        PdfReader reader = new PdfReader(inputPdf);
        PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(outputPdf));
        int pageCount = reader.getNumberOfPages();
        PdfContentByte content;
        for (int i = 1; i <= pageCount; i++) {
            content = stamper.getUnderContent(i);
            content.beginText();
            content.setFontAndSize(BaseFont.createFont(), 48);
            content.showTextAligned(Element.ALIGN_CENTER, watermarkText, 300, 400, 45);
            content.endText();
        }
        stamper.close();
    }
// Usage
    public static void main(String[] args) throws IOException, DocumentException {
        addWatermark("input.pdf", "output.pdf", "Confidential");
    }
}

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

pdftk input.pdf background watermark.pdf output output.pdf

Добавление водяных знаков в документы PDF — важная задача в различных сценариях. В этой статье мы рассмотрели три различных метода достижения этой цели, в том числе использование PyPDF2 в Python, iText в Java и PDFtk в качестве инструмента командной строки. В зависимости от ваших предпочтений и языка программирования, который вам удобен, вы можете выбрать метод, который соответствует вашим потребностям. Теперь, когда у вас есть эти методы и примеры кода, вы можете легко добавлять водяные знаки в свои PDF-документы.