Главное Авторские колонки Вакансии Вопросы
561 0 В избр. Сохранено
Авторизуйтесь
Вход с паролем

Как добавить водяные знаки в PDF с помощью Python

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

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

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

  • Добавление текстового водяного знака в PDF с помощью Python
  • Добавление водяного знака изображения в PDF с помощью Python

Установите зависимость

Это решение требует установки в качестве зависимости Spire.PDF for Python, которая представляет собой библиотеку Python для чтения, создания и работы с PDF-документами в программах на Python. Вы можете установить ее, выполнив следующую команду pip.

pip install Spire.PDF

Добавление текстового водяного знака в PDF с помощью Python

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

Ниже приведены подробные шаги.

  1. Создайте объект класса PdfDocument и загрузите PDF-документ с помощью метода PdfDocument.LoadFromFile().
  2. Создайте шрифт.
  3. Укажите текст водяного знака и рассчитайте его положение.
  4. Пройдитесь по страницам документа, чтобы добавить водяные знаки.
  5. Получите страницу с помощью метода PdfDocument.Pages.get_Item().
  6. Установите прозрачность с помощью метода PdfPageBase.Canvas.SetTransparency().
  7. Переведите систему координат страницы в указанную позицию с помощью метода PdfPageBase.Canvas.TranslateTransform() и поверните систему координат на 45 градусов против часовой стрелки с помощью метода PdfPageBase.Canvas.RotateTransform(), чтобы водяной знак был наклонен на 45 градусов против часовой стрелки в центре страницы.
  8. Нарисуйте текст водяного знака на странице с помощью метода PdfPageBase.Canvas.DrawString().
  9. Сохраните документ с помощью метода PdfDocument.SaveToFile().

from spire.pdf import *

from spire.pdf.common import *

import math

# Create an object of PdfDocument class

pdf = PdfDocument()

# Load a PDF document

pdf.LoadFromFile("Sample.pdf")

# Create an object of PdfTrueTypeFont class

font = PdfTrueTypeFont("HarmonyOS Sans SC", 48.0, 0, True)

# Specify the watermark text and calculate the position of the watermark

text = «DRAFT»

set1 = float (font.MeasureString(text).Width * math.sqrt(2) / 4)

set2 = float (font.MeasureString(text).Height * math.sqrt(2) / 4)

# Loop through the pages in the document

for i in range(pdf.Pages.Count):

# Get a page

page = pdf.Pages.get_Item(i)

# Set the transparency of the watermark

page.Canvas.SetTransparency(0.5)

# Translate the page coordinate system to the specified position

page.Canvas.TranslateTransform(page.Canvas.Size.Width / 2 — set1 — set2,

page.Canvas.Size.Height / 2 + set1 — set2)

# Rotate the coordinate system 45 degrees counterclockwise

page.Canvas.RotateTransform(-45.0)

# Draw the watermark on the page

page.Canvas.DrawString(text, font, PdfBrushes.get_Cyan(), 0.0, 0.0)

# Save the document

pdf.SaveToFile("output/SingleLineTextWatermark.pdf")

pdf.Close()

Добавление водяного знака изображения в PDF с помощью Python

Чтобы добавить водяной знак в PDF-страницу, используйте метод PdfPageBase.Canvas.DrawImage(). С его помощью вы можете разместить водяной знак в любом месте страницы. В данном случае изображение будет размещено в центре каждой страницы.

  1. Создайте объект класса PdfDocument.
  2. Загрузите PDF-документ с помощью метода PdfDocument.LoadFromFile().
  3. Загрузите изображение водяного знака с помощью метода PdfImage.FromFile().
  4. Пройдитесь по страницам документа, чтобы добавить водяной знак.
  5. Получите страницу с помощью метода PdfDocument.Pages.get_Item().
  6. Установите прозрачность водяного знака с помощью метода PdfPageBase.Canvas.SetTransparency().
  7. Нарисуйте изображение водяного знака в центре страницы с помощью метода PdfPageBase.Canvas.DrawImage().
  8. Сохраните документ с помощью метода PdfDocument.SaveToFile().

from spire.pdf import *

from spire.pdf.common import *

# Create an object of PdfDocument class

pdf = PdfDocument()

# Load a PDF document

pdf.LoadFromFile("Sample.pdf")

# Load the watermark image

image = PdfImage.FromFile("watermark.png")

# Get the width and height of the image

imageWidth = float(image.Width)

imageHeight = float(image.Height)

# Loop through the pages in the document

for i in range(pdf.Pages.Count):

# Get a page

page = pdf.Pages.get_Item(i)

# Set the transparency of the watermark

page.Canvas.SetTransparency(0.3)

# Get the width and height of the page

pageWidth = page.ActualSize.Width

pageHeight = page.ActualSize.Height

# Draw the watermark image on the page

page.Canvas.DrawImage(image, pageWidth/2 — imageWidth/2, pageHeight/2 — imageHeight/2, imageWidth, imageHeight)

# Save the document

pdf.SaveToFile("output/ImageWatermark.pdf")

pdf.Close()

Заключение

В этой статье мы узнали, как добавлять текстовые или графические водяные знаки в PDF. Spire.PDF for Python, являясь продвинутой библиотекой Python, позволяет разработчикам выполнять широкий спектр операций с PDF-документами, таких как:

Преобразование изображений в PDF с помощью Python

Преобразование PDF в изображения в Python

0
В избр. Сохранено
Авторизуйтесь
Вход с паролем
Комментарии
Выбрать файл
Блог проекта
Расскажите историю о создании или развитии проекта, поиске команды, проблемах и решениях
Написать
Личный блог
Продвигайте свои услуги или личный бренд через интересные кейсы и статьи
Написать

Spark использует cookie-файлы. С их помощью мы улучшаем работу нашего сайта и ваше взаимодействие с ним.