扁平化 PDF – Flatten PDF – C# 示例
PDF(便携式文档格式)是一种流行的文件格式,广泛用于交换和存储数字文档。这种多用途格式允许您创建包含文本、图像、表格等各种元素的复杂文档。不过,在某些情况下,可能有必要将 PDF 文档扁平化,也就是将其转换为静态、非交互式文件,以便于共享、打印或存档。本文将解释扁平化 PDF 的含义,以及如何使用 Aspose.HTML for .NET 库实现扁平化。
压平 PDF 意味着什么?
压平 PDF 文件是指将所有文档层合并为一个背景层。这一过程通过移除任何交互式元素(如可填写的表单字段和可编辑的文本),有效地 “压平 “了文档。其结果是一个静态的 PDF 文件,不能再进行编辑或更改其外观,因此非常适合共享、打印或存档。
为什么要压平 PDF?
根据您的具体需求,压平 PDF 文档的过程有多种好处。您可能有几个原因需要对 PDF 文件进行扁平化处理:
- 就安全性 而言,扁平化 PDF 文档可以防止未经授权的更改或伪造。扁平化 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。这个过程非常简单,只需几行代码即可完成。让我们看看我们所采取的步骤:
- 使用
HTMLDocument 类的一个构造函数加载 HTML 文件。在本例中,
HTMLDocument(
sourcePath
) 构造函数从本地文件系统加载 HTML 文档。 - 创建用于指定保存 PDF 文档选项的
PdfSaveOptions 类实例。在本例中,PdfSaveOptions 的
FormFieldBehaviour 属性被设置为
FormFieldBehaviour.Flattened
,这意味着在创建 PDF 文档时,HTML 文档中的所有表单字段都将被扁平化。 - 调用
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,应遵循以下几个步骤:
初始化 PdfSaveOptions 类的实例,并指定保存 PDF 文档的选项。在本例中,PdfSaveOptions 的 FormFieldBehaviour 属性被设置为
FormFieldBehaviour.Flattened
,这意味着在创建 PDF 文档时,MHTML 文档中的所有表单字段都将被扁平化。使用 ConvertMHTML() 方法将 MHTML 转换为 PDF,该方法将源路径、选项和输出路径作为参数。
使用和不使用 FormFieldBehaviour 属性保存的 PDF 文件有什么区别?
- 如果将 FormFieldBehaviour 属性设置为
FormFieldBehaviour.Flattened
,PDF 文档中的表单字段将被合并到文档的一个层中。这将有效地扁平化表单字段,使其成为非交互式且无法编辑的字段。其结果是生成一个无法更改的静态 PDF 文档。 - 另一方面,如果将
FormFieldBehaviour
属性设置为FormFieldBehaviour.Interactive
,PDF 文档中的表单字段将保持交互式。这意味着用户可以填写表格字段并进行更改。 - 在 Aspose.HTML for .NET 中,FormFieldBehaviour 属性的默认值为
FormFieldBehaviour.Interactive
。如果没有显式设置 FormFieldBehaviour 属性,PDF 文档中的表单字段将保持交互式,允许用户填写和编辑。
Aspose.HTML 提供免费的在线 转换器,用于将 HTML、XHTML、MHTML、EPUB、XML 和 Markdown 文件转换为各种流行格式。您可以轻松地将 HTML 转换为 PDF、 HTML 转换为 JPG、 SVG 转换为 PDF、 MHTML 转换为 PDF 或 MD 转换为 HTML。只需选择文件,选择要转换的格式,就大功告成了。它速度快,而且完全免费!