在 C# .NET 中创建标记的 PDF 文件

带标签的 PDF 文件是一种 PDF,它使用标签来定义文档中内容的逻辑结构。它用于增强使用辅助技术和屏幕阅读器的人的阅读体验。在 previous post 中,我们介绍了在 .NET 应用程序中创建 PDF 文件。在本文中,我们将演示如何在 C# .NET 中以编程方式创建标记的 PDF 文件。

C# .NET API 创建带标签的 PDF - 免费下载

Aspose.PDF for .NET 是一个强大的 API,用于在 .NET 应用程序中生成和操作 PDF。使用 API,您可以无缝地创建、处理和转换简单和复杂布局的 PDF 文件。您可以 下载 API 的二进制文件或使用 NuGet 安装它。

PM> Install-Package Aspose.PDF

在 C# .NET 中创建标记的 PDF 文件

为了在标记的 PDF 中创建结构元素,Aspose.PDF for .NET 提供了 ITaggedContent 接口。那么让我们看看如何使用这个接口在 C# 中创建一个带标签的 PDF 文件。

以下代码示例展示了如何在 C# 中创建带标签的 PDF。

// 创建 PDF 文档
Document document = new Document();

// 获取使用标记 PDF 的内容
ITaggedContent taggedContent = document.TaggedContent;
var rootElement = taggedContent.RootElement;
            
// 设置文档的标题和语言
taggedContent.SetTitle("Tagged Pdf Document");
taggedContent.SetLanguage("en-US");

// 添加标题
HeaderElement mainHeader = taggedContent.CreateHeaderElement();
mainHeader.SetText("Main Header");

// 添加段落
ParagraphElement paragraphElement = taggedContent.CreateParagraphElement();
paragraphElement.SetText("Lorem ipsum dolor sit amet, consectetur adipiscing elit. " +
"Aenean nec lectus ac sem faucibus imperdiet. Sed ut erat ac magna ullamcorper hendrerit. " +
"Cras pellentesque libero semper, gravida magna sed, luctus leo. Fusce lectus odio, laoreet" +
"nec ullamcorper ut, molestie eu elit. Interdum et malesuada fames ac ante ipsum primis in faucibus." +
"Aliquam lacinia sit amet elit ac consectetur. Donec cursus condimentum ligula, vitae volutpat" +
"sem tristique eget. Nulla in consectetur massa. Vestibulum vitae lobortis ante. Nulla ullamcorper" +
"pellentesque justo rhoncus accumsan. Mauris ornare eu odio non lacinia. Aliquam massa leo, rhoncus" +
"ac iaculis eget, tempus et magna. Sed non consectetur elit. Sed vulputate, quam sed lacinia luctus," +
"ipsum nibh fringilla purus, vitae posuere risus odio id massa. Cras sed venenatis lacus.");

rootElement.AppendChild(mainHeader);
rootElement.AppendChild(paragraphElement);

// 保存标记的 PDF
document.Save("tagged-pdf.pdf");

以下是上述代码示例的输出。

在 C# 中创建标记的 PDF 文件

C# 创建带有嵌套元素的标记 PDF

在前面的示例中,我们创建了一个包含段落的简单标记 PDF。现在让我们看看如何在带标签的 PDF 中添加嵌套元素。以下是执行此操作的步骤。

以下代码示例展示了如何在 C# 中在带标签的 PDF 中添加嵌套元素。

// 创建 PDF 文档
Document document = new Document();

// 获取使用标记 PDF 的内容
ITaggedContent taggedContent = document.TaggedContent;
var rootElement = taggedContent.RootElement;

// 设置文档的标题和语言
taggedContent.SetTitle("Tagged Pdf Document");
taggedContent.SetLanguage("en-US");

// 添加标题
HeaderElement mainHeader = taggedContent.CreateHeaderElement();
mainHeader.SetText("Main Header");

// 创建段落
ParagraphElement paragraphWithQuotes = taggedContent.CreateParagraphElement();
paragraphWithQuotes.StructureTextState.Font = FontRepository.FindFont("Calibri");
paragraphWithQuotes.StructureTextState.MarginInfo = new MarginInfo(10, 5, 10, 5);

// 添加跨度元素
SpanElement spanElement1 = taggedContent.CreateSpanElement();
spanElement1.SetText("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean nec lectus ac sem faucibus imperdiet. Sed ut erat ac magna ullamcorper hendrerit. Cras pellentesque libero semper, gravida magna sed, luctus leo. Fusce lectus odio, laoreet nec ullamcorper ut, molestie eu elit. Interdum et malesuada fames ac ante ipsum primis in faucibus. Aliquam lacinia sit amet elit ac consectetur. Donec cursus condimentum ligula, vitae volutpat sem tristique eget. Nulla in consectetur massa. Vestibulum vitae lobortis ante. Nulla ullamcorper pellentesque justo rhoncus accumsan. Mauris ornare eu odio non lacinia. Aliquam massa leo, rhoncus ac iaculis eget, tempus et magna. Sed non consectetur elit. ");
QuoteElement quoteElement = taggedContent.CreateQuoteElement();
quoteElement.SetText("Sed vulputate, quam sed lacinia luctus, ipsum nibh fringilla purus, vitae posuere risus odio id massa.");
quoteElement.StructureTextState.FontStyle = FontStyles.Bold | FontStyles.Italic;
SpanElement spanElement2 = taggedContent.CreateSpanElement();
spanElement2.SetText(" Sed non consectetur elit.");

// 追加到段落
paragraphWithQuotes.AppendChild(spanElement1);
paragraphWithQuotes.AppendChild(quoteElement);
paragraphWithQuotes.AppendChild(spanElement2);

// 添加到根元素
rootElement.AppendChild(mainHeader);
rootElement.AppendChild(paragraphWithQuotes);

// 保存标记的 PDF
document.Save("tagged-pdf-nested-elements.pdf");

以下屏幕截图显示了带有嵌套元素的标记 PDF。

在 C# 中创建带有嵌套元素的标记 PDF

在 C# 中为标记的 PDF 中的文本结构设置样式

您还可以通过设置字体样式、系列、大小等将样式应用于标记 PDF 中的文本。为此,Aspose.PDF for .NET 提供了 FontFontSize、[FontStyle] StructureTextState 类的 25ForegroundColor 属性。以下代码示例展示了如何在 C# 中在标记的 PDF 中应用文本样式。

// 创建 PDF 文档
Document document = new Document();

// 获取使用标记 PDF 的内容
ITaggedContent taggedContent = document.TaggedContent;
var rootElement = taggedContent.RootElement;

// 设置文档的标题和语言
taggedContent.SetTitle("Tagged Pdf Document");
taggedContent.SetLanguage("en-US");

// 添加标题
HeaderElement mainHeader = taggedContent.CreateHeaderElement();
mainHeader.SetText("Main Header");

// 创建段落
ParagraphElement paragraphWithQuotes = taggedContent.CreateParagraphElement();
taggedContent.RootElement.AppendChild(paragraphWithQuotes);

// 设置样式
paragraphWithQuotes.StructureTextState.FontSize = 18F;
paragraphWithQuotes.StructureTextState.ForegroundColor = Color.Red;
paragraphWithQuotes.StructureTextState.FontStyle = FontStyles.Italic;
            
// 添加文字
paragraphWithQuotes.SetText("Red italic text.");

// 保存标记的 PDF
document.Save("tagged-pdf-text-styling.pdf");

C# 说明标记 PDF 中的结构元素

为了说明结构元素,Aspose.PDF for .NET 提供了 IllustrationElement 类。以下代码示例展示了如何使用此类来说明带标签的 PDF 中的结构元素。

// 创建 PDF 文档
Document document = new Document();

// 获取使用标记 PDF 的内容
ITaggedContent taggedContent = document.TaggedContent;
var rootElement = taggedContent.RootElement;

// 设置文档的标题和语言
taggedContent.SetTitle("Tagged Pdf Document");
taggedContent.SetLanguage("en-US");

IllustrationElement figure1 = taggedContent.CreateFigureElement();
taggedContent.RootElement.AppendChild(figure1);
figure1.AlternativeText = "Figure One";
figure1.Title = "Image 1";
figure1.SetTag("Fig1");
figure1.SetImage("aspose_pdf.png");

// 保存标记的 PDF
document.Save("tagged-pdf-illustrating-structure.pdf");

用于创建标记 PDF 的 C# API - 获取免费许可证

您可以获得免费的临时许可证 以便在没有评估限制的情况下使用 Aspose.PDF for .NET。

结论

在本文中,您学习了如何在 C# 中创建带标签的 PDF 文件。此外,您还了解了如何以编程方式创建嵌套元素、对文本应用样式以及说明带标签的 PDF 中的结构元素。此外,您可以使用 文档 探索更多关于 .NET PDF API 的信息。如果您有任何问题或疑问,可以通过我们的 论坛 与我们联系。

也可以看看