扁平化 PDF – Flatten PDF – C# 示例

PDF(便携式文档格式)是一种流行的文件格式,广泛用于交换和存储数字文档。这种多用途格式允许您创建包含文本、图像、表格等各种元素的复杂文档。不过,在某些情况下,可能有必要将 PDF 文档扁平化,也就是将其转换为静态、非交互式文件,以便于共享、打印或存档。本文将解释扁平化 PDF 的含义,以及如何使用 Aspose.HTML for .NET 库实现扁平化。

压平 PDF 意味着什么?

压平 PDF 文件是指将所有文档层合并为一个背景层。这一过程通过移除任何交互式元素(如可填写的表单字段和可编辑的文本),有效地 “压平 “了文档。其结果是一个静态的 PDF 文件,不能再进行编辑或更改其外观,因此非常适合共享、打印或存档。

为什么要压平 PDF?

根据您的具体需求,压平 PDF 文档的过程有多种好处。您可能有几个原因需要对 PDF 文件进行扁平化处理:

无论您的目标与安全性、文件大小、打印、存档或易用性有关,扁平化 PDF 都能为您提供所需的结果。

如何在 C# 中压平 PDF?

对 PDF 文档进行扁平化处理非常有用,它可以确保文档的稳定性和安全性,还可以提高文档与打印机或软件应用程序的兼容性。通过使用 C# 代码将 HTML 或 MHTML 文件转换为扁平化 PDF 文件,我们可以轻松创建静态、非交互式 PDF 文档。

Aspose.HTML for .NET提供了PdfSaveOptions类的 FormFieldBehaviour属性,用于在从HTML或MHTML转换为PDF文档后对其进行扁平化处理。该属性用于指定 PDF 文档中表单域的行为。如果值设置为 FormFieldBehaviour.Flattened,PDF 文档中的所有表单字段都将被扁平化。

HTML 转换为 PDF 和 PDF 扁平化

要使用 Aspose.HTML for .NET 扁平化 PDF 文件,首先需要将 HTML 文件转换为 PDF 文档。HTML 文件可能包含需要转换为 PDF 并进行扁平化的交互式表单。下面是一个如何将 HTML 转换为 PDF 并使用 FormFieldBehaviour 属性来扁平化 PDF 的示例:

 1// Flatten PDF during HTML to PDF conversion using C#
 2
 3// Prepare a path to an HTML source file
 4string sourcePath = Path.Combine(DataDir, "SampleHtmlForm.html");
 5
 6// Initialize an HTML document from the file
 7using HTMLDocument document = new HTMLDocument(sourcePath);
 8
 9// Prepare PDF save options
10PdfSaveOptions options = new PdfSaveOptions
11{
12    // Flatten all form fields
13    FormFieldBehaviour = FormFieldBehaviour.Flattened
14};
15
16// Prepare a path to the result file
17string resultPath = Path.Combine(OutputDir, "form-flattened.pdf");
18
19// Convert HTML to PDF
20Converter.ConvertHTML(document, options, resultPath);

这样,您就可以使用 C# 将 HTML 文件轻松转换为扁平化 PDF。这个过程非常简单,只需几行代码即可完成。让我们看看我们所采取的步骤:

  1. 使用 HTMLDocument 类的一个构造函数加载 HTML 文件。在本例中, HTMLDocument(sourcePath) 构造函数从本地文件系统加载 HTML 文档。
  2. 创建用于指定保存 PDF 文档选项的 PdfSaveOptions 类实例。在本例中,PdfSaveOptions 的 FormFieldBehaviour 属性被设置为 FormFieldBehaviour.Flattened,这意味着在创建 PDF 文档时,HTML 文档中的所有表单字段都将被扁平化。
  3. 调用 ConvertHTML() 方法,使用指定的选项将 HTML 转换为 PDF,并将生成的 PDF 文档保存到 resultPath 中。

MHTML 转换为 PDF 和 PDF 扁平化

下面的 C# 示例展示了如何将位于 sourcePath 的 MHTML 文档转换为扁平化 PDF 文档并保存到 outputPath 中:

 1// Flatten PDF during MHTML to PDF conversion using C#
 2
 3// Prepare a path to an MHTML source file
 4string sourcePath = Path.Combine(DataDir, "SampleHtmlForm.mhtml");
 5
 6// Initialize PDF save options
 7PdfSaveOptions options = new PdfSaveOptions
 8{
 9    // Flatten all form fields
10    FormFieldBehaviour = FormFieldBehaviour.Flattened
11};
12
13// Prepare a path to the result file
14string resultPath = Path.Combine(OutputDir, "document-flattened.pdf");
15
16// Convert MHTML to PDF
17Converter.ConvertMHTML(sourcePath, options, resultPath);

要使用指定的 FormFieldBehaviour 属性将 MHTML 转换为 PDF,应遵循以下几个步骤:

  1. 初始化 PdfSaveOptions 类的实例,并指定保存 PDF 文档的选项。在本例中,PdfSaveOptions 的 FormFieldBehaviour 属性被设置为 FormFieldBehaviour.Flattened,这意味着在创建 PDF 文档时,MHTML 文档中的所有表单字段都将被扁平化。

  2. 使用 ConvertMHTML() 方法将 MHTML 转换为 PDF,该方法将源路径、选项和输出路径作为参数。

使用和不使用 FormFieldBehaviour 属性保存的 PDF 文件有什么区别?

  1. 如果将 FormFieldBehaviour 属性设置为 FormFieldBehaviour.Flattened,PDF 文档中的表单字段将被合并到文档的一个层中。这将有效地扁平化表单字段,使其成为非交互式且无法编辑的字段。其结果是生成一个无法更改的静态 PDF 文档。
  2. 另一方面,如果将 FormFieldBehaviour 属性设置为 FormFieldBehaviour.Interactive,PDF 文档中的表单字段将保持交互式。这意味着用户可以填写表格字段并进行更改。
  3. 在 Aspose.HTML for .NET 中,FormFieldBehaviour 属性的默认值FormFieldBehaviour.Interactive。如果没有显式设置 FormFieldBehaviour 属性,PDF 文档中的表单字段将保持交互式,允许用户填写和编辑。

Aspose.HTML 提供免费的在线 转换器,用于将 HTML、XHTML、MHTML、EPUB、XML 和 Markdown 文件转换为各种流行格式。您可以轻松地将 HTML 转换为 PDFHTML 转换为 JPGSVG 转换为 PDFMHTML 转换为 PDFMD 转换为 HTML。只需选择文件,选择要转换的格式,就大功告成了。它速度快,而且完全免费!

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.