Как добавить водяные знаки в PDF с помощью Python
Добавление водяных знаков в 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-файлах. Однако вы можете нарисовать на каждой странице текст типа «конфиденциально», «для внутреннего пользования» или «черновик», чтобы имитировать эффект водяного знака.
Ниже приведены подробные шаги.
- Создайте объект класса PdfDocument и загрузите PDF-документ с помощью метода PdfDocument.LoadFromFile().
- Создайте шрифт.
- Укажите текст водяного знака и рассчитайте его положение.
- Пройдитесь по страницам документа, чтобы добавить водяные знаки.
- Получите страницу с помощью метода PdfDocument.Pages.get_Item().
- Установите прозрачность с помощью метода PdfPageBase.Canvas.SetTransparency().
- Переведите систему координат страницы в указанную позицию с помощью метода PdfPageBase.Canvas.TranslateTransform() и поверните систему координат на 45 градусов против часовой стрелки с помощью метода PdfPageBase.Canvas.RotateTransform(), чтобы водяной знак был наклонен на 45 градусов против часовой стрелки в центре страницы.
- Нарисуйте текст водяного знака на странице с помощью метода PdfPageBase.Canvas.DrawString().
- Сохраните документ с помощью метода 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(). С его помощью вы можете разместить водяной знак в любом месте страницы. В данном случае изображение будет размещено в центре каждой страницы.
- Создайте объект класса PdfDocument.
- Загрузите PDF-документ с помощью метода PdfDocument.LoadFromFile().
- Загрузите изображение водяного знака с помощью метода PdfImage.FromFile().
- Пройдитесь по страницам документа, чтобы добавить водяной знак.
- Получите страницу с помощью метода PdfDocument.Pages.get_Item().
- Установите прозрачность водяного знака с помощью метода PdfPageBase.Canvas.SetTransparency().
- Нарисуйте изображение водяного знака в центре страницы с помощью метода PdfPageBase.Canvas.DrawImage().
- Сохраните документ с помощью метода 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-документами, таких как: