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

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

C# .NET PDF API — скачать бесплатно

Aspose.PDF for .NET — это API для работы с PDF-файлами, который позволяет создавать и обрабатывать PDF-файлы из приложений .NET. Используя API, вы можете динамически создавать различные виды отчетов и бизнес-документов. API доступен в виде загружаемой библиотеки DLL, а также размещен на NuGet.

Install-Package Aspose.Pdf

Создание PDF-файлов на C#

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

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

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

// Инициализировать объект документа
Document document = new Document();

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

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

// Сохранить PDF 
document.Save("document.pdf");

Подробнее о создании сложных PDF-документов.

Редактировать файл PDF в C#

Изменить файл PDF так же просто, как создать новый. Просто загрузите файл с помощью класса Document, выполните нужные операции и сохраните его. Ниже приведены шаги для изменения PDF.

  • Создайте объект класса Document и укажите путь к PDF-файлу его конструктору.
  • Управление страницами или содержимым документа.
  • Сохраните документ с помощью метода Document.Save().

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

// Загрузить PDF
var pdfDocument = new Aspose.Pdf.Document("document.pdf");

// Сделайте некоторые манипуляции, например добавьте новую пустую страницу
pdfDocument.Pages.Add();

// Сохраните обновленный PDF
pdfDocument.Save(modifiedFileName);

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

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

  • Создайте объект класса Document, чтобы открыть PDF-документ.
  • Получите доступ к странице, на которую вы хотите добавить изображение, используя класс Page.
  • Добавьте изображение в коллекцию Ресурсы страницы.
  • Используйте операторы для размещения изображения на странице:
    • GСохранить operator to save the current graphical state.
    • ConcatenateMatrix operator to specify where the image is to be placed.
    • Делать operator to draw the image on the page.
    • Наконец, используйте оператор GRestore для сохранения обновленного графического состояния.
  • Сохраните PDF-файл.

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

// Открыть документ
Document pdfDocument = new Document("document.pdf");

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

// Получить страницу, на которую нужно добавить изображение
Page page = pdfDocument.Pages[1];

// Загрузить изображение в поток
FileStream imageStream = new FileStream("aspose-logo.jpg", 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[] { rectangle.URX - rectangle.LLX, 0, 0, rectangle.URY - rectangle.LLY, rectangle.LLX, rectangle.LLY });

// Использование оператора 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()); 

// Сохранить обновленный документ
pdfDocument.Save("document.pdf");

Подробнее о вставьте изображения в формате PDF.

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

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

  • Загрузите файл PDF с помощью класса Document.
  • Инициализируйте таблицу и установите ее столбцы и строки, используя класс Table.
  • Установите настройки таблицы (т.е. границы).
  • Заполните таблицу, создав строки с помощью метода Table.Rows.Add().
  • Добавьте таблицу на страницу с помощью метода Document.Pages1.Paragraphs.Add(Table).
  • Сохраните PDF-файл.

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

// Загрузить исходный PDF-документ
Aspose.Pdf.Document doc = new Aspose.Pdf.Document("document.pdf");

// Инициализирует новый экземпляр таблицы
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)");
}

// Добавить табличный объект на первую страницу входного документа
doc.Pages[1].Paragraphs.Add(table);

// Сохранить обновленный документ, содержащий табличный объект
doc.Save("document_with_table_out.pdf");

Подробнее о создании таблиц в PDF.

Создать форму в PDF на С#

Формы в PDF-файлах используются для сбора данных от читателей. Вы можете вставлять текстовые поля, флажки, переключатели и другие поддерживаемые элементы управления в формы PDF. Формат PDF поддерживает два типа форм; Формы Acro и XFA (см. подробности). Ниже приведены шаги по созданию и добавлению форм в PDF.

  • Загрузите файл PDF с помощью класса Document.
  • Создайте элементы управления формы, такие как TextBoxField.
  • Добавьте элемент управления в форму с помощью метода Document.Form.Add(textBoxField, 1).
  • Сохраните PDF-документ.

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

// Открыть документ
Document pdfDocument = new Document("document.pdf");

// Создать поле
TextBoxField textBoxField = new TextBoxField(pdfDocument.Pages[1], new Aspose.Pdf.Rectangle(100, 200, 300, 300));
textBoxField.PartialName = "textbox1";
textBoxField.Value = "Text Box";

// TextBoxField.Border = новая граница (
Border border = new Border(textBoxField);
border.Width = 5;
border.Dash = new Dash(1, 1);
textBoxField.Border = border;

textBoxField.Color = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Green);

// Добавить поле в документ
pdfDocument.Form.Add(textBoxField, 1);

// Сохранить измененный PDF
pdfDocument.Save("output.pdf");

Подробнее о создании форм в PDF.

Вывод

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

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

Информация: Aspose предоставляет бесплатное онлайн-приложение, которое позволяет просматривать PDF-файлы в Интернете, другое позволяет конвертировать PDF-файлы в видео и одно позволяет редактировать PDF-файлы в Интернете. ].