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

Как добавить штампы в PDF на C#

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

Штампы служат визуальными маркерами, передающими важную информацию, одобрения или комментарии, что делает их незаменимым инструментом для профессионалов в различных отраслях.

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

  • Добавление текстового штампа в PDF в C#
  • Добавление штампа изображения в PDF в C#

Установка Spire.PDF for .NET

Spire.PDF for .NET — это мощная библиотека, позволяющая программно создавать, редактировать и манипулировать файлами PDF. Чтобы начать работу, необходимо установить библиотеку. Это можно сделать, скачав библиотеку с официального сайта или воспользовавшись менеджером пакетов NuGet в Visual Studio.

PM> Install-Package Spire.PDF

Добавление текстового штампа в PDF в C#

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

  1. Визуальное представление: Часто включает изображение или графику, визуально представляющую штамп, например «Утверждено», «Конфиденциально» или логотип компании.
  2. Позиционирование: Аннотация может быть размещена в определенном месте на странице, что позволяет ей появляться на видном или незаметном месте в зависимости от макета документа.
  3. Интерактивность: Аннотация может быть интерактивной, позволяя пользователям нажимать на нее для получения дополнительной информации или запуска действий.
  4. Внешний вид: Внешний вид штампа можно настраивать, включая размер, цвет, прозрачность и текст.

В целом, PdfRubberStampAnnotation полезен для добавления визуальных подсказок и метаданных в PDF-документы, улучшая коммуникацию и ясность.

Следующий фрагмент кода демонстрирует, как добавить текстовый штамп в PDF-документ с помощью класса PdfRubberStampAnnotation.

using System.Drawing;

using Spire.Pdf;

using Spire.Pdf.Graphics;

using Spire.Pdf.Annotations;

using Spire.Pdf.Annotations.Appearance;

namespace AddDynamicStamp

{

class Program

{

static void Main(string[] args)

{

// Создание объекта PdfDocument

PdfDocument doc = new PdfDocument();

// Загрузка PDF документа

doc.LoadFromFile("C:\\Users\\Administrator\\Desktop\\input.pdf");

// Получение конкретной страницы

PdfPageBase page = doc.Pages[1];

// Создание объекта PdfTemplate

PdfTemplate template = new PdfTemplate(220, 50);

// Создание двух шрифтов

PdfTrueTypeFont font1 = new PdfTrueTypeFont(new Font("Elephant", 16f, FontStyle.Bold), true);

PdfTrueTypeFont font2 = new PdfTrueTypeFont(new Font("Times New Roman", 10f, FontStyle.Bold), true);

// Создание сплошной кисти и градиентной кисти

PdfSolidBrush solidBrush = new PdfSolidBrush(Color.Blue);

RectangleF rectangle1 = new RectangleF(new PointF(0, 0), template.Size);

PdfLinearGradientBrush linearGradientBrush = new PdfLinearGradientBrush(rectangle1, new PdfRGBColor(Color.White), new PdfRGBColor(Color.Blue), PdfLinearGradientMode.Horizontal);

// Создание пера

PdfPen pen = new PdfPen(solidBrush);

// Создание пути с закругленными углами

int CornerRadius = 10;

PdfPath path = new PdfPath();

path.AddArc(template.GetBounds().X, template.GetBounds().Y, CornerRadius, CornerRadius, 180, 90);

path.AddArc(template.GetBounds().X + template.Width — CornerRadius, template.GetBounds().Y, CornerRadius, CornerRadius, 270, 90);

path.AddArc(template.GetBounds().X + template.Width — CornerRadius, template.GetBounds().Y + template.Height — CornerRadius, CornerRadius, CornerRadius, 0, 90);

path.AddArc(template.GetBounds().X, template.GetBounds().Y + template.Height — CornerRadius, CornerRadius, CornerRadius, 90, 90);

path.AddLine(template.GetBounds().X, template.GetBounds().Y + template.Height — CornerRadius, template.GetBounds().X, template.GetBounds().Y + CornerRadius / 2);

// Отрисовка пути на шаблоне

template.Graphics.DrawPath(pen, path);

template.Graphics.DrawPath(linearGradientBrush, path);

// Отрисовка текста на шаблоне

String string1 = «УТВЕРЖДЕНО\n»;

String string2 = «Менеджером по маркетингу в » + DateTime.Now.ToString("HH:mm, MMM dd, yyyy");

template.Graphics.DrawString(string1, font1, solidBrush, new PointF(5, 5));

template.Graphics.DrawString(string2, font2, solidBrush, new PointF(2, 28));

// Создание резинового штампа, указание его размера и положения

RectangleF rectangle2 = new RectangleF(55, page.ActualSize.Height — 55 - 70, 240, 55);

PdfRubberStampAnnotation stamp = new PdfRubberStampAnnotation(rectangle2);

// Создание объекта PdfAppearance и применение шаблона в качестве его нормального состояния

PdfAppearance apprearance = new PdfAppearance(stamp);

apprearance.Normal = template;

// Применение внешнего вида к штампу

stamp.Appearance = apprearance;

// Добавление аннотации штампа в коллекцию аннотаций

page.Annotations.Add(stamp);

// Сохранение файла

doc.SaveToFile("DynamicStamp.pdf", FileFormat.PDF);

// Освобождение ресурсов

doc.Dispose();

}

}

}

Добавление штампа изображения в PDF в C#

Чтобы создать штамп с изображением в PDF, необходимо задать картинку в качестве внешнего вида штампа, представленного PdfRubberStampAnnotation.

Следующий фрагмент кода демонстрирует, как добавить штамп с изображением в PDF на. C#

using Spire.Pdf;

using Spire.Pdf.Annotations;

using Spire.Pdf.Annotations.Appearance;

using Spire.Pdf.Graphics;

using System.Drawing;

namespace AddImageStamp

{

class Program

{

static void Main(string[] args)

{

// Создание объекта PdfDocument

PdfDocument doc = new PdfDocument();

// Загрузка PDF документа

doc.LoadFromFile("C:\\Users\\Administrator\\Desktop\\input.pdf");

// Получение конкретной страницы

PdfPageBase page = doc.Pages[1];

// Загрузка файла изображения

PdfImage image = PdfImage.FromFile("C:\\Users\\Administrator\\Desktop\\confidential.png");

// Получение ширины и высоты изображения

int width = image.Width;

int height = image.Height;

// Создание объекта PdfTemplate на основе размера изображения

PdfTemplate template = new PdfTemplate(width, height, true);

// Отрисовка изображения на шаблоне

template.Graphics.DrawImage(image, 0, 0, width, height);

// Создание аннотации резинового штампа, указание его местоположения и позиции

RectangleF rect = new RectangleF(page.ActualSize.Width — width — 50, page.ActualSize.Height — height — 50, width, height);

PdfRubberStampAnnotation stamp = new PdfRubberStampAnnotation(rect);

// Создание объекта PdfAppearance

PdfAppearance pdfAppearance = new PdfAppearance(stamp);

// Установка шаблона в качестве нормального состояния внешнего вида

pdfAppearance.Normal = template;

// Применение внешнего вида к штампу

stamp.Appearance = pdfAppearance;

// Добавление аннотации штампа в PDF

page.Annotations.Add(stamp);

// Сохранение файла

doc.SaveToFile("ImageStamp.pdf");

// Освобождение ресурсов

doc.Dispose();

}

}

}

Заключение

В этой статье мы узнали, как добавить текстовые или графические штампы в PDF с помощью C#. Будучи продвинутой библиотекой PDF, Spire.PDF for .NET поддерживает множество дополнительных функций, включая:

Создание PDF в C#

Печать PDF в C#

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

Извлечение текста из PDF на C#

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

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