使用 C# 创建 PDF 文档

最近几天,PDF 文档的自动生成和处理已成为一项要求很高的功能。在各种应用程序中,PDF 文档是动态生成的,例如发票、收据和不同类型的报告。据此,本文介绍了 .NET 应用程序中 PDF 自动化的基本实现。最终,您将学习如何使用 C# 创建 PDF 文件。代码示例将演示如何使用 C# 在 PDF 中插入文本、图像、表格和其他组件。

C# .NET PDF API - 免费下载

Aspose.PDF for .NET 是一个 PDF 文件操作 API,可让您从 .NET 应用程序中生成和处理 PDF 文件。使用 API,您可以动态生成各种报告和业务文档。 API 以 可下载 DLL 的形式提供,并托管在 NuGet 上。

Install-Package Aspose.Pdf

在 C# 中创建 PDF 文件

让我们从创建一个包含文本片段的简单 PDF 文档开始。以下是使用 C# 创建 PDF 文件的步骤。

以下代码示例展示了如何使用 C# 创建一个简单的 PDF 文件。

// 初始化文档对象
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 文档

在 C# 中编辑 PDF 文件

修改 PDF 文件就像创建一个新文件一样简单。只需使用 Document 类加载文件,执行所需的操作并保存即可。以下是修改 PDF 的步骤。

  • 创建 Document 类的对象,并为其构造函数提供 PDF 文件的路径。
  • 操作文档的页面或内容。
  • 使用 Document.Save() 方法保存文档。

以下代码示例展示了如何使用 C# 修改 PDF。

// 加载 PDF
var pdfDocument = new Aspose.Pdf.Document("document.pdf");

// 进行一些操作,例如添加新的空白页面
pdfDocument.Pages.Add();

// 保存更新的 PDF
pdfDocument.Save(modifiedFileName);

使用 C# 在 PDF 中插入图像

现在让我们检查如何将图像插入 PDF 文档。以下是执行此操作的步骤。

  • 创建 Document 类的对象以打开 PDF 文档。
  • 使用 Page 类访问要添加图像的页面。
  • 将图像添加到页面的 Resources 集合中。
  • 使用运算符将图像放置在页面上:
    • G保存 operator to save the current graphical state.
    • 连接矩阵 operator to specify where the image is to be placed.
    • operator to draw the image on the page.
    • 最后,使用 GRestore 操作符保存更新的图形状态。
  • 保存 PDF 文件。

以下代码示例展示了如何使用 C# 将图像添加到 PDF 文档。

// 打开文档
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 中插入图像

使用 C# 在 PDF 中创建表格

表格是文档的重要组成部分,用于以行和列的形式组织数据。 Aspose.PDF for .NET 为您提供了一种在 PDF 文档中创建和插入表格的简单方法。以下是执行此操作的步骤。

  • 使用 Document 类加载 PDF 文件。
  • 使用 Table 类初始化表并设置其列和行。
  • 设置表格的设置(即边框)。
  • 通过使用 Table.Rows.Add() 方法创建行来填充表格。
  • 使用 Document.Pages1.Paragraphs.Add(Table) 方法将表格添加到页面。
  • 保存 PDF 文件。

以下代码示例展示了如何在 C# 中的 PDF 文档中创建和添加表格。

// 加载源 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 中创建表格

在 C# 中以 PDF 格式创建表单

PDF 中的表格用于从读者那里收集数据。您可以在 PDF 表单中插入文本框、复选框、单选按钮和其他受支持的控件。 PDF格式支持两种形式; Acro 表格和 XFA 表格(查看详细信息)。以下是在 PDF 中创建和添加表单的步骤。

以下代码示例展示了如何使用 C# 将表单添加到 PDF 文档。

// 打开文档
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 中创建表单

结论

在这篇文章中,您学习了如何使用 C# 从头开始创建 PDF 文件。此外,您已经了解如何以编程方式在 PDF 文档中插入各种类型的组件,例如文本、图像、表格和表单。您可以使用 文档 了解有关 PDF API 的更多信息。

也可以看看

信息:Aspose 提供了一个免费的在线网络应用程序,允许您在线查看 PDF,另一个允许您将 PDF 转换为视频,还有一个允许您在线编辑 PDF