PDF管理控件Aspose.PDF for .Net使用教程(三十八):创建带标签的PDF文档
Aspose.PDF for .NET是一种高PDF处理和解析API,用于在跨平台应用程序中执行文档管理和操作任务。API可以轻松用于生成、修改、转换、渲染、保护和打印PDF文档,而无需使用Adobe Acrobat。此外,API还提供PDF压缩选项,表格创建和操作,图形和图像功能,广泛的超链接功能,印章和水印任务,扩展的安全控制和自定义字体处理。
在接下来的系列教程中,将为开发者带来Aspose.PDF for .NET的一系列使用教程,例如进行文档间的转换,如何标记PDF文件,如何使用表单和图表等等。本文将介绍如何设置表格的边框样式,边距和填充。
>>Aspose.PDF for .NET更新至最新版v20.6,欢迎下载体验。
创建结构元素
为了在标记的PDF文档中创建结构元素,Aspose.PDF提供了使用ITaggedContent 接口创建结构元素的方法 。以下代码段显示了如何创建标记PDF的结构元素:
// The path to the documents directory. string dataDir = RunExamples.GetDataDir_AsposePdf_WorkingDocuments(); // Create Pdf Document Document document = new Document(); // Get Content for work with TaggedPdf ITaggedContent taggedContent = document.TaggedContent; // Set Title and Language for Documnet taggedContent.SetTitle("Tagged Pdf Document"); taggedContent.SetLanguage("en-US"); // Create Grouping Elements PartElement partElement = taggedContent.CreatePartElement(); ArtElement artElement = taggedContent.CreateArtElement(); SectElement sectElement = taggedContent.CreateSectElement(); DivElement divElement = taggedContent.CreateDivElement(); BlockQuoteElement blockQuoteElement = taggedContent.CreateBlockQuoteElement(); CaptionElement captionElement = taggedContent.CreateCaptionElement(); TOCElement tocElement = taggedContent.CreateTOCElement(); TOCIElement tociElement = taggedContent.CreateTOCIElement(); IndexElement indexElement = taggedContent.CreateIndexElement(); NonStructElement nonStructElement = taggedContent.CreateNonStructElement(); PrivateElement privateElement = taggedContent.CreatePrivateElement(); // Create Text Block-Level Structure Elements ParagraphElement paragraphElement = taggedContent.CreateParagraphElement(); HeaderElement headerElement = taggedContent.CreateHeaderElement(); HeaderElement h1Element = taggedContent.CreateHeaderElement(1); // Create Text Inline-Level Structure Elements SpanElement spanElement = taggedContent.CreateSpanElement(); QuoteElement quoteElement = taggedContent.CreateQuoteElement(); NoteElement noteElement = taggedContent.CreateNoteElement(); // Create Illustration Structure Elements FigureElement figureElement = taggedContent.CreateFigureElement(); FormulaElement formulaElement = taggedContent.CreateFormulaElement(); // Methods are under development ListElement listElement = taggedContent.CreateListElement(); TableElement tableElement = taggedContent.CreateTableElement(); ReferenceElement referenceElement = taggedContent.CreateReferenceElement(); BibEntryElement bibEntryElement = taggedContent.CreateBibEntryElement(); CodeElement codeElement = taggedContent.CreateCodeElement(); LinkElement linkElement = taggedContent.CreateLinkElement(); AnnotElement annotElement = taggedContent.CreateAnnotElement(); RubyElement rubyElement = taggedContent.CreateRubyElement(); WarichuElement warichuElement = taggedContent.CreateWarichuElement(); FormElement formElement = taggedContent.CreateFormElement(); // Save Tagged Pdf Document document.Save(dataDir + "StructureElements.pdf");
创建结构元素树
为了在标记的PDF文档中创建结构元素树,Aspose.PDF提供了使用ITaggedContent 接口创建结构元素树的方法 。以下代码段显示了如何创建带标签的PDF文档的结构元素树:
// The path to the documents directory. string dataDir = RunExamples.GetDataDir_AsposePdf_WorkingDocuments(); // Create Pdf Document Document document = new Document(); // Get Content for work with TaggedPdf ITaggedContent taggedContent = document.TaggedContent; // Set Title and Language for Documnet taggedContent.SetTitle("Tagged Pdf Document"); taggedContent.SetLanguage("en-US"); // Get root structure element (Document) StructureElement rootElement = taggedContent.RootElement; // Create Logical Structure SectElement sect1 = taggedContent.CreateSectElement(); rootElement.AppendChild(sect1); SectElement sect2 = taggedContent.CreateSectElement(); rootElement.AppendChild(sect2); DivElement div11 = taggedContent.CreateDivElement(); sect1.AppendChild(div11); DivElement div12 = taggedContent.CreateDivElement(); sect1.AppendChild(div12); ArtElement art21 = taggedContent.CreateArtElement(); sect2.AppendChild(art21); ArtElement art22 = taggedContent.CreateArtElement(); sect2.AppendChild(art22); DivElement div211 = taggedContent.CreateDivElement(); art21.AppendChild(div211); DivElement div212 = taggedContent.CreateDivElement(); art21.AppendChild(div212); DivElement div221 = taggedContent.CreateDivElement(); art22.AppendChild(div221); DivElement div222 = taggedContent.CreateDivElement(); art22.AppendChild(div222); SectElement sect3 = taggedContent.CreateSectElement(); rootElement.AppendChild(sect3); DivElement div31 = taggedContent.CreateDivElement(); sect3.AppendChild(div31); // Save Tagged Pdf Document document.Save(dataDir + "StructureElementsTree.pdf");
样式化文字结构
为了给标记的PDF文档中的文本结构设置样式,Aspose.PDF提供了StructureTextState类的Font,FontSize,FontStyle和ForegroundColor属性。以下代码段显示了如何在带标签的PDF文档中设置文本结构的样式:
// The path to the documents directory. string dataDir = RunExamples.GetDataDir_AsposePdf_WorkingDocuments(); // Create Pdf Document Document document = new Document(); // Get Content for work with TaggedPdf ITaggedContent taggedContent = document.TaggedContent; // Set Title and Language for Documnet taggedContent.SetTitle("Tagged Pdf Document"); taggedContent.SetLanguage("en-US"); ParagraphElement p = taggedContent.CreateParagraphElement(); taggedContent.RootElement.AppendChild(p); // Under Development p.StructureTextState.FontSize = 18F; p.StructureTextState.ForegroundColor = Color.Red; p.StructureTextState.FontStyle = FontStyles.Italic; p.SetText("Red italic text."); // Save Tagged Pdf Document document.Save(dataDir + "StyleTextStructure.pdf");
图解结构元素
为了说明带有标签的PDF文档中的结构元素,Aspose.PDF提供了IllustrationElement类。以下代码段显示了如何在标记的PDF文档中说明结构元素:
// The path to the documents directory. string dataDir = RunExamples.GetDataDir_AsposePdf_WorkingDocuments(); // Create Pdf Document Document document = new Document(); // Get Content for work with TaggedPdf ITaggedContent taggedContent = document.TaggedContent; // Set Title and Language for Documnet taggedContent.SetTitle("Tagged Pdf Document"); taggedContent.SetLanguage("en-US"); // Under Development IllustrationElement figure1 = taggedContent.CreateFigureElement(); taggedContent.RootElement.AppendChild(figure1); figure1.AlternativeText = "Figure One"; figure1.Title = "Image 1"; figure1.SetTag("Fig1"); figure1.SetImage("image.png"); // Save Tagged Pdf Document document.Save(dataDir + "IllustrationStructureElements.pdf");
验证标记的PDF
用于.NET的Aspose.PDF提供了验证PDF / UA标记PDF文档的功能。验证PDF / UA标准支持:
- 检查XObjects
- 检查动作
- 检查可选内容
- 检查嵌入式文件
- 检查Acroform字段(验证自然语言以及替代名称和数字签名)
- 检查XFA表单字段
- 检查安全性设置
- 检查导航
- 检查注释
下面的代码段显示了如何验证标记的PDF文档。相应的问题将显示在XML日志报告中。
// The path to the documents directory. string dataDir = RunExamples.GetDataDir_AsposePdf_WorkingDocuments(); string inputFileName = dataDir + "StructureElements.pdf"; string outputLogName = dataDir + "ua-20.xml"; using (var document = new Aspose.Pdf.Document(inputFileName)) { bool isValid = document.Validate(outputLogName, Aspose.Pdf.PdfFormat.PDF_UA_1); }
还想要更多吗?您可以点击阅读【2019 · Aspose最新资源整合】,查找需要的教程资源。如果您有任何疑问或需求,请随时加入Aspose技术交流群(642018183),我们很高兴为您提供查询和咨询。