Создание PDF-документов с помощью C#

PDF – это независимый от платформы формат документа, в котором форматирование и макет содержимого согласуются между собой на разных операционных системах и компьютерах. По этой причине различные организации используют формат PDF для динамического создания счетов, квитанций, отчетов и других деловых документов. Aspose.PDF для .NET — это библиотека PDF, которая помогает реализовать автоматизацию PDF в приложениях .NET. Он позволяет программно создавать, редактировать, анализировать и конвертировать PDF-файлы с помощью C# или VB.NET. В этой статье я расскажу о возможностях создания PDF-файлов и покажу, как создавать PDF-файлы с нуля с помощью C#.

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

C# PDF-библиотека — установка

Вы можете установить Aspose.PDF для .NET с помощью Диспетчера пакетов NuGet или консоли диспетчера пакетов, используя следующую команду. Кроме того, его можно загрузить из раздела Загрузки.

Install-Package Aspose.Pdf

Создайте файл PDF с помощью С#

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

  • Создайте экземпляр класса Document.
  • Добавьте новую Page в коллекцию Pages документа.
  • Добавьте новый TextFragment к абзацам PDF.
  • Создайте файл PDF с помощью метода Document.Save().

В следующем примере кода показано, как создать файл PDF с помощью C#.

// Загрузить PDF-документ 
Document document = new Document();

// Добавить страницу
Aspose.Pdf.Page page = document.Pages.Add();

// Добавить текст на новую страницу
page.Paragraphs.Add(new Aspose.Pdf.Text.TextFragment("Hello World! This is a new PDF generated by Aspose.PDF for .NET."));

// Сохраните PDF-документ
document.Save("Generated-PDF.pdf");
создать pdf с помощью С#

Применение форматирования текста в PDF с помощью C#

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

  • Используйте класс Document для создания нового документа PDF или загрузки существующего.
  • Перейдите на Страницу, на которую вы хотите поместить текст.
  • Создайте объект TextFragment и установите текст и другие параметры форматирования, такие как положение, шрифт, цвет, размер и т. д.
  • Используйте класс TextBuilder, чтобы добавить на страницу объект TextFragment.
  • Используйте метод Document.Save() для создания документа PDF.

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

// Загрузить PDF-документ 
Document document = new Document();
// Добавить страницу
Aspose.Pdf.Page page = document.Pages.Add();

// Создать текстовый фрагмент
TextFragment textFragment = new TextFragment("Text 1: We have now applied text formatting. This is PDF generated by Aspose.PDF for .NET");
textFragment.Position = new Position(100, 700);
TextFragment textFragment1 = new TextFragment("Text 2: We have now applied text formatting. This is PDF generated by Aspose.PDF for .NET");
textFragment1.Position = new Position(100, 600);

// Установить свойства текста
textFragment.TextState.FontSize = 12;
textFragment.TextState.Font = FontRepository.FindFont("TimesNewRoman");
textFragment.TextState.BackgroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.LightGray);
textFragment.TextState.ForegroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Red);

textFragment1.TextState.DrawTextRectangleBorder = true;
textFragment1.TextState.Underline = true;
textFragment1.TextState.StrikeOut = true;
// Создайте новый цвет с цветовым пространством узора
textFragment1.TextState.ForegroundColor = new Aspose.Pdf.Color()
{
	PatternColorSpace = new Aspose.Pdf.Drawing.GradientAxialShading(Color.Red, Color.Blue)
};
// Создать объект TextBuilder
TextBuilder textBuilder = new TextBuilder(page);

// Добавьте текстовые фрагменты на страницу PDF
textBuilder.AppendText(textFragment);
textBuilder.AppendText(textFragment1);

// Сохраните PDF-документ
document.Save("Generated-PDF.pdf");
создать pdf с форматированным текстом с помощью С#

Создайте многоколоночный PDF-файл с помощью C#

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

В следующем примере кода показано, как создать PDF-файл с несколькими столбцами с помощью C#.

// Загрузить PDF-документ 
Document document = new Document();
// Укажите информацию о левом поле для файла PDF
document.PageInfo.Margin.Left = 40;
// Укажите информацию о правом поле для файла PDF.
document.PageInfo.Margin.Right = 40;
Aspose.Pdf.Page page = document.Pages.Add();

// Добавить строку
Aspose.Pdf.Drawing.Graph graph1 = new Aspose.Pdf.Drawing.Graph(500, 2);
// Добавьте строку в коллекцию абзацев объекта раздела
page.Paragraphs.Add(graph1);

// Укажите координаты линии
float[] posArr = new float[] { 1, 2, 500, 2 };
Aspose.Pdf.Drawing.Line l1 = new Aspose.Pdf.Drawing.Line(posArr);
graph1.Shapes.Add(l1);

// Добавить заголовок
// Создайте строковые переменные с текстом, содержащим html-теги
string s = "<font face=\"Times New Roman\" size=4>" +
"<strong> How to Steer Clear of money scams</<strong> "
+ "</font>";

// Создание текстовых абзацев, содержащих текст HTML
HtmlFragment heading_text = new HtmlFragment(s);
page.Paragraphs.Add(heading_text);

Aspose.Pdf.FloatingBox box = new Aspose.Pdf.FloatingBox();
// Добавьте четыре столбца в раздел
box.ColumnInfo.ColumnCount = 2;
// Установить расстояние между столбцами
box.ColumnInfo.ColumnSpacing = "5";
// Установите ширину столбцов
box.ColumnInfo.ColumnWidths = "250 250"; 

// Создать текст 
TextFragment text2 = new TextFragment(@"Sed augue tortor, sodales id, luctus et, pulvinar ut, eros. Suspendisse vel dolor. Sed quam. Curabitur ut massa vitae eros euismod aliquam. Pellentesque sit amet elit. Vestibulum interdum pellentesque augue. Cras mollis arcu sit amet purus. Donec augue. Nam mollis tortor a elit. Nulla viverra nisl vel mauris. Vivamus sapien. nascetur ridiculus mus. Nam justo lorem, aliquam luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, sodales et,nAenean posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam, iaculis sed, pharetra non, mollis ac, mauris. Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique ut, iaculis cursus, tincidunt vitae, risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam justo lorem, aliquam luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, sodales et, semper sed, enim nAenean posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam, iaculis sed, pharetra non, mollis ac, mauris. Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique ut, iaculis cursus, tincidunt vitae, risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed urna. . Duis convallis ultrices nisi. Maecenas non ligula. Nunc nibh est, tincidunt in, placerat sit amet, vestibulum a, nulla. Praesent porttitor turpis eleifend ante. Morbi sodales.nAenean posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam, iaculis sed, pharetra non, mollis ac, mauris. Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique ut, iaculis cursus, tincidunt vitae, risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed urna. . Duis convallis ultrices nisi. Maecenas non ligula. Nunc nibh est, tincidunt in, placerat sit amet, vestibulum a, nulla. Praesent porttitor turpis eleifend ante. Morbi sodales. Sed augue tortor, sodales id, luctus et, pulvinar ut, eros. Suspendisse vel dolor. Sed quam. Curabitur ut massa vitae eros euismod aliquam. Pellentesque sit amet elit. Vestibulum interdum pellentesque augue. Cras mollis arcu sit amet purus. Donec augue. Nam mollis tortor a elit. Nulla viverra nisl vel mauris. Vivamus sapien. nascetur ridiculus mus. Nam justo lorem, aliquam luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, sodales et,nAenean posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam, iaculis sed, pharetra non, mollis ac, mauris. Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique ut, iaculis cursus, tincidunt vitae, risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam justo lorem, aliquam luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, sodales et, semper sed, enim nAenean posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam, iaculis sed, pharetra non, mollis ac, mauris. Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique ut, iaculis cursus, tincidunt vitae, risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed urna. . Duis convallis ultrices nisi. Maecenas non ligula. Nunc nibh est, tincidunt in, placerat sit amet, vestibulum a, nulla. Praesent porttitor turpis eleifend ante. Morbi sodales.nAenean posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam, iaculis sed, pharetra non, mollis ac, mauris. Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique ut, iaculis cursus, tincidunt vitae, risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed urna. . Duis convallis ultrices nisi. Maecenas non ligula. Nunc nibh est, tincidunt in, placerat sit amet, vestibulum a, nulla. Praesent porttitor turpis eleifend ante. Morbi sodales. Sed augue tortor, sodales id, luctus et, pulvinar ut, eros. Suspendisse vel dolor. Sed quam. Curabitur ut massa vitae eros euismod aliquam. Pellentesque sit amet elit. Vestibulum interdum pellentesque augue. Cras mollis arcu sit amet purus. Donec augue. Nam mollis tortor a elit. Nulla viverra nisl vel mauris. Vivamus sapien. nascetur ridiculus mus. Nam justo lorem, aliquam luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, sodales et,nAenean posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam, iaculis sed, pharetra non, mollis ac, mauris. Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique ut, iaculis cursus, tincidunt vitae, risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam justo lorem, aliquam luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, sodales et, semper sed, enim nAenean posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam, iaculis sed, pharetra non, mollis ac, mauris. Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique ut, iaculis cursus, tincidunt vitae, risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed urna. . Duis convallis ultrices nisi. Maecenas non ligula. Nunc nibh est, tincidunt in, placerat sit amet, vestibulum a, nulla. Praesent porttitor turpis eleifend ante. Morbi sodales.nAenean posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam, iaculis sed, pharetra non, mollis ac, mauris. Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique ut, iaculis cursus, tincidunt vitae, risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed urna. . Duis convallis ultrices nisi. Maecenas non ligula. Nunc nibh est, tincidunt in, placerat sit amet, vestibulum a, nulla. Praesent porttitor turpis eleifend ante. Morbi sodales. Sed augue tortor, sodales id, luctus et, pulvinar ut, eros. Suspendisse vel dolor. Sed quam. Curabitur ut massa vitae eros euismod aliquam. Pellentesque sit amet elit. Vestibulum interdum pellentesque augue. Cras mollis arcu sit amet purus. Donec augue. Nam mollis tortor a elit. Nulla viverra nisl vel mauris. Vivamus sapien. nascetur ridiculus mus. Nam justo lorem, aliquam luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, sodales et,nAenean posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam, iaculis sed, pharetra non, mollis ac, mauris. Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique ut, iaculis cursus, tincidunt vitae, risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam justo lorem, aliquam luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, sodales et, semper sed, enim nAenean posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam, iaculis sed, pharetra non, mollis ac, mauris. Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique ut, iaculis cursus, tincidunt vitae, risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed urna. . Duis convallis ultrices nisi. Maecenas non ligula. Nunc nibh est, tincidunt in, placerat sit amet, vestibulum a, nulla. Praesent porttitor turpis eleifend ante. Morbi sodales.nAenean posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam, iaculis sed, pharetra non, mollis ac, mauris. Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique ut, iaculis cursus, tincidunt vitae, risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed urna. . Duis convallis ultrices nisi. Maecenas non ligula. Nunc nibh est, tincidunt in, placerat sit amet, vestibulum a, nulla. Praesent porttitor turpis eleifend ante. Morbi sodales.");

// Добавить текст в документ
box.Paragraphs.Add(text2);
page.Paragraphs.Add(box);

// Сохраните PDF-документ
document.Save("Generated-PDF.pdf");
создать многоколоночный pdf с помощью С#

Вставить изображение в PDF с помощью С#

Следующие шаги демонстрируют, как вставлять изображения в документы PDF.

  • Создайте новый PDF-документ или откройте существующий с помощью класса Document.
  • Получите страницу, на которую вы хотите вставить изображение.
  • Добавьте изображение к изображениям страницы.
  • Используйте операторы GSave, ConcatenateMatrix и Do для размещения изображения на странице.
  • Сохраните документ PDF с помощью метода Document.Save().

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

// Загрузить PDF-документ 
Document document = new Document();
// Добавить страницу
Aspose.Pdf.Page page = document.Pages.Add();

// Установить координаты
int lowerLeftX = 100;
int lowerLeftY = 100;
int upperRightX = 250;
int upperRightY = 250; 

// Загрузить изображение в поток
FileStream imageStream = new FileStream("aspose_pdf.png", FileMode.Open);
// Добавить изображение в коллекцию изображений ресурсов страницы
page.Resources.Images.Add(imageStream);
// Использование оператора GSave: этот оператор сохраняет текущее состояние графики.
page.Contents.Add(new Aspose.Pdf.Operators.GSave());
// Создание объектов «Прямоугольник» и «Матрица»
Aspose.Pdf.Rectangle rectangle = new Aspose.Pdf.Rectangle(lowerLeftX, lowerLeftY, upperRightX, upperRightY);
//Matrix matrix = new Matrix(new double[] { прямоугольник.URX - прямоугольник.LLX, 0, 0, прямоугольник.URY - прямоугольник.LLY, прямоугольник.LLX, прямоугольник.LLY});
Matrix matrix = new Matrix(new double[] { 200, 0, 0, 200, 200, 600 });
// Использование оператора ConcatenateMatrix (сцепление матрицы): определяет, как должно быть размещено изображение.
page.Contents.Add(new Aspose.Pdf.Operators.ConcatenateMatrix(matrix));
XImage ximage = page.Resources.Images[page.Resources.Images.Count];
// Использование оператора Do: этот оператор рисует изображение
page.Contents.Add(new Aspose.Pdf.Operators.Do(ximage.Name));
// Использование оператора GRestore: этот оператор восстанавливает состояние графики
page.Contents.Add(new Aspose.Pdf.Operators.GRestore());

// Сохраните PDF-документ
document.Save("Generated-PDF.pdf");
вставить изображение в PDF с помощью С#

Создать таблицу в файле PDF с помощью С#

Таблица используется для организации данных в виде строк и столбцов и для быстрого обзора информации. Чтобы создать таблицу в документе PDF, выполните следующие действия.

  • Создайте объект класса Document, чтобы создать новый PDF-файл или загрузить существующий.
  • Откройте страницу, на которой вы хотите создать таблицу.
  • Создайте экземпляр класса Table.
  • Установите границу таблицы и границы ячеек с помощью класса BorderInfo.
  • Создайте и добавьте новую Row в коллекцию Table.Rows.
  • Добавьте ячейки в коллекцию Row.Cells.
  • Добавьте таблицу на страницу с помощью метода Page.Paragraphs.Add().
  • Сохраните документ PDF с помощью метода Document.Save().

В следующем примере кода показано, как создать таблицу в PDF с помощью C#.

// Загрузить PDF-документ 
Document document = new Document();
// Добавить страницу
Aspose.Pdf.Page page = document.Pages.Add();

// Инициализирует новый экземпляр таблицы
Aspose.Pdf.Table table = new Aspose.Pdf.Table();
// Установите цвет границы таблицы как LightGray
table.Border = new Aspose.Pdf.BorderInfo(Aspose.Pdf.BorderSide.All, .5f, Aspose.Pdf.Color.FromRgb(System.Drawing.Color.LightGray));
// Установите границу для ячеек таблицы
table.DefaultCellBorder = new Aspose.Pdf.BorderInfo(Aspose.Pdf.BorderSide.All, .5f, Aspose.Pdf.Color.FromRgb(System.Drawing.Color.LightGray));
// Создайте цикл, чтобы добавить 10 строк
for (int row_count = 1; row_count < 10; row_count++)
{
	// Добавить строку в таблицу
	Aspose.Pdf.Row row = table.Rows.Add();
	// Добавить ячейки таблицы
	row.Cells.Add("Column (" + row_count + ", 1)");
	row.Cells.Add("Column (" + row_count + ", 2)");
	row.Cells.Add("Column (" + row_count + ", 3)");
}

// Добавить таблицу на страницу
page.Paragraphs.Add(table);

// Сохраните PDF-документ
document.Save("Generated-PDF.pdf");
создать таблицу в pdf с помощью С#

Добавить аннотацию в PDF с помощью C#

Аннотации — это графические объекты, которые используются для предоставления дополнительной информации о содержимом документов PDF. Формат PDF поддерживает различные аннотации, включая текст, выделение, строку, примечания и т. д. Ниже приведены шаги для добавления аннотации в документ PDF.

  • Создайте новый документ PDF или загрузите существующий.
  • Выберите страницу, к которой вы хотите добавить аннотацию.
  • Создайте новую аннотацию, например TextAnnotation, LineAnnotation, HighlightAnnotation и т. д.
  • Задайте свойства аннотации.
  • Добавьте аннотацию в коллекцию Page.Annotations.
  • Создайте PDF-файл с помощью метода Document.Save().

В следующем примере кода показано, как добавить аннотацию в PDF с помощью C#.

// Загрузить PDF-документ 
Document document = new Document();
// Добавить страницу
Aspose.Pdf.Page page = document.Pages.Add();

// Создать аннотацию
TextAnnotation textAnnotation = new TextAnnotation(page, new Aspose.Pdf.Rectangle(200, 400, 400, 600));
textAnnotation.Title = "Sample Annotation Title";
textAnnotation.Subject = "Sample Subject";
textAnnotation.State = AnnotationState.Accepted;
textAnnotation.Contents = "Sample contents for the annotation";
textAnnotation.Open = true;
textAnnotation.Icon = TextIcon.Key;

Border border = new Border(textAnnotation);
border.Width = 5;
border.Dash = new Dash(1, 1);
textAnnotation.Border = border;
textAnnotation.Rect = new Aspose.Pdf.Rectangle(200, 400, 400, 600);

// Добавить аннотацию в коллекцию аннотаций страницы
page.Annotations.Add(textAnnotation);

// Сохраните PDF-документ
document.Save("Generated-PDF.pdf");
добавить аннотацию в PDF с помощью С#

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

  • Создайте новый объект Документ.
  • Откройте страницу, на которую вы хотите добавить гиперссылку.
  • Создайте экземпляр класса LinkAnnotation.
  • Установите свойства объекта LinkAnnotation, включая URI действия.
  • Добавьте ссылку на коллекцию Page.Annotations.
  • Используйте класс FreeTextAnnotation, чтобы задать текст гиперссылки.
  • Добавьте объект FreeTextAnnotation в коллекцию Page.Annotations.
  • Создайте документ PDF с помощью метода Document.Save().

В следующем примере кода показано, как добавить гиперссылку в документ PDF с помощью C#.

// Загрузить PDF-документ 
Document document = new Document();
// Добавить страницу
Aspose.Pdf.Page page = document.Pages.Add();

// Создать объект аннотации «Ссылка»
LinkAnnotation link = new LinkAnnotation(page, new Aspose.Pdf.Rectangle(100, 800, 250, 750));
// Создайте объект границы для LinkAnnotation
Border border = new Border(link);
// Установите значение ширины границы как 0
border.Width = 1;
// Установите границу для LinkAnnotation
link.Border = border; 

// Укажите тип ссылки как удаленный URI
link.Action = new GoToURIAction("www.aspose.com");
// Добавить аннотацию ссылки в коллекцию аннотаций первой страницы PDF-файла
page.Annotations.Add(link);

// Создать аннотацию произвольного текста для текста ссылки
FreeTextAnnotation textAnnotation = new FreeTextAnnotation(document.Pages[1], new Aspose.Pdf.Rectangle(100, 800, 250, 750), new DefaultAppearance(Aspose.Pdf.Text.FontRepository.FindFont("TimesNewRoman"), 10, System.Drawing.Color.Blue));
// Строка, которая будет добавлена как произвольный текст
textAnnotation.Contents = "Link to Aspose website";
// Установите границу для произвольной текстовой аннотации
textAnnotation.Border = border;
// Добавить аннотацию FreeText в коллекцию аннотаций первой страницы документа
page.Annotations.Add(textAnnotation);

// Сохраните PDF-документ
document.Save("Generated-PDF.pdf");
добавить гиперссылку в PDF с помощью С#

Создание закладок в PDF с помощью С#

Закладки используются для перехода к определенному разделу или странице в документах PDF. Aspose.PDF для .NET позволяет добавлять закладки или управлять ими. Ниже приведены шаги для создания и добавления закладки в документ PDF.

  • Создайте документ PDF или откройте существующий.
  • Создайте новый объект закладки, используя класс OutlineItemCollection.
  • Добавьте закладки в коллекцию Document.Outlines.
  • Создайте документ PDF с помощью метода Document.Save().

В следующем примере кода показано, как создать PDF-документ с закладками с помощью C#.

// Загрузить PDF-документ 
Document document = new Document();
// Добавить страницу
Aspose.Pdf.Page page = document.Pages.Add();

// Создать родительский объект закладки
OutlineItemCollection pdfOutline = new OutlineItemCollection(document.Outlines);
pdfOutline.Title = "Parent Outline";
pdfOutline.Italic = true;
pdfOutline.Bold = true;

// Создать дочерний объект закладки
OutlineItemCollection pdfChildOutline = new OutlineItemCollection(document.Outlines);
pdfChildOutline.Title = "Child Outline";
pdfChildOutline.Italic = true;
pdfChildOutline.Bold = true;

// Добавить дочернюю закладку в коллекцию родительских закладок
pdfOutline.Add(pdfChildOutline);
// Добавьте родительскую закладку в коллекцию структуры документа.
document.Outlines.Add(pdfOutline);

// Сохраните PDF-документ
document.Save("Generated-PDF.pdf");
создать закладку в PDF с помощью С#

Вывод

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

Смотрите также