Q1:关于标签PDF文件(TaggedPDF) 标签PDF文件包含描述文档结构和各种文档元素顺序的元数据,是一种包含后端提供的可访问标记,管理阅读顺序和文档内容表示的逻辑结构的PDF文件〔1〕。Q2:关于标签(Tag) PDF标签是通过屏幕阅读器等支持技术访问PDF文档内容的关键。PDF标记在层次结构或标记树(tagtree)中排列PDF内容〔1〕。 这里的标签是一种不可见的标签,它提供关于PDF文档内容的重要信息。带标签的PDF包含许多不同类型的标签,但最常用的是文本、替代文本(图像的替代文本)、标题、链接和链接描述〔2〕。Q3:PDF标签的用处及意义 添加PDF标签不会改变文档的视觉外观,但它提供了一个不可见的层,用于格式化文档与屏幕阅读器协作工作,这就使得从PDF文件中提取文本和图形变得更容易,并帮助屏幕阅读器以正确的顺序显示文件内容。〔2〕 PDF标签还可以用于将内容传输到屏幕较小的设备,如智能手机和平板电脑。〔2〕Q4:如何创建标签PDF文件 本文将要介绍的创建方法是以后端C程序代码的方式来创建标签PDF文件。创建时,通过NuGet安装引用PDFAPISpire。PDFfor。NET,调用其提供的类及相关方法来标记内容、结构元素等。 C usingSpire。Pdf;usingSpire。Pdf。Graphics;usingSpire。Pdf。Interchange。TaggedPdf;usingSystem。Drawing;namespaceCreateTaggedPDF{classProgram{staticvoidMain(string〔〕args){创建PdfDocument类的对象PdfDocumentpdfnewPdfDocument();添加一页pdf。Pages。Add(PdfPageSize。A4);设置taborderpdf。Pages〔0〕。SetTabOrder(TabOrder。Structure);创建PdfTaggedContent类的对象PdfTaggedContenttaggedContentnewPdfTaggedContent(pdf);taggedContent。SetLanguage(enUS);taggedContent。SetTitle(test);创建字体、画刷、字符串格式PdfTrueTypeFontfontnewPdfTrueTypeFont(newFont(TimesNewRoman,10),true);PdfSolidBrushbrushnewPdfSolidBrush(Color。Black);PdfStringFormatformatnewPdfStringFormat(PdfTextAlignment。Left);添加elementsPdfStructureElementarticletaggedContent。StructureTreeRoot。AppendChildElement(PdfStandardStructTypes。Document);PdfStructureElementparagraph1article。AppendChildElement(PdfStandardStructTypes。Paragraph);PdfStructureElementspan1paragraph1。AppendChildElement(PdfStandardStructTypes。Span);span1。BeginMarkedContent(pdf。Pages〔0〕);绘制内容到页面pdf。Pages〔0〕。Canvas。DrawString(APDFtagisthekeytoaccessingthecontentsofPDFdocumentswithsupportingtechnologiessuchasscreenreaders。,font,brush,newRectangle(40,0,480,80),format);span1。EndMarkedContent(pdf。Pages〔0〕);PdfStructureElementparagraph2article。AppendChildElement(PdfStandardStructTypes。Paragraph);paragraph2。BeginMarkedContent(pdf。Pages〔0〕);pdf。Pages〔0〕。Canvas。DrawString(APDFtagarrangesthePDFcontentinahierarchicalarchitectureortagtree。,font,brush,newRectangle(40,80,480,80),format);paragraph2。EndMarkedContent(pdf。Pages〔0〕);PdfStructureElementfigure1article。AppendChildElement(PdfStandardStructTypes。Figure);SetAlternatetextfigure1。Altreplacementtext1;figure1。BeginMarkedContent(pdf。Pages〔0〕,null);PdfImageimagePdfImage。FromFile(logo。png);pdf。Pages〔0〕。Canvas。DrawImage(image,newPointF(40,200),newSizeF(100,100));绘制图片到页面figure1。EndMarkedContent(pdf。Pages〔0〕);PdfStructureElementfigure2article。AppendChildElement(PdfStandardStructTypes。Figure);SetAlternatetextfigure2。Altreplacementtext2;figure2。BeginMarkedContent(pdf。Pages〔0〕,null);pdf。Pages〔0〕。Canvas。DrawRectangle(PdfPens。Black,newRectangle(300,200,100,100));figure2。EndMarkedContent(pdf。Pages〔0〕);保存文档pdf。SaveToFile(CreateTaggedFileresult。pdf);}}} vb。net ImportsSpire。PdfImportsSpire。Pdf。GraphicsImportsSpire。Pdf。Interchange。TaggedPdfImportsSystem。DrawingNamespaceCreateTaggedPDFClassProgramPrivateSharedSubMain(argsAsString())创建PdfDocument类的对象DimpdfAsNewPdfDocument()添加一页pdf。Pages。Add(PdfPageSize。A4)设置taborderpdf。Pages(0)。SetTabOrder(TabOrder。〔Structure〕)创建PdfTaggedContent类的对象DimtaggedContentAsNewPdfTaggedContent(pdf)taggedContent。SetLanguage(enUS)taggedContent。SetTitle(test)创建字体、画刷、字符串格式DimfontAsNewPdfTrueTypeFont(NewFont(TimesNewRoman,10),True)DimbrushAsNewPdfSolidBrush(Color。Black)DimformatAsNewPdfStringFormat(PdfTextAlignment。Left)添加elementsDimarticleAsPdfStructureElementtaggedContent。StructureTreeRoot。AppendChildElement(PdfStandardStructTypes。Document)Dimparagraph1AsPdfStructureElementarticle。AppendChildElement(PdfStandardStructTypes。Paragraph)Dimspan1AsPdfStructureElementparagraph1。AppendChildElement(PdfStandardStructTypes。Span)span1。BeginMarkedContent(pdf。Pages(0))绘制内容到页面pdf。Pages(0)。Canvas。DrawString(APDFtagisthekeytoaccessingthecontentsofPDFdocumentswithsupportingtechnologiessuchasscreenreaders。,font,brush,NewRectangle(40,0,480,80),format)span1。EndMarkedContent(pdf。Pages(0))Dimparagraph2AsPdfStructureElementarticle。AppendChildElement(PdfStandardStructTypes。Paragraph)paragraph2。BeginMarkedContent(pdf。Pages(0))pdf。Pages(0)。Canvas。DrawString(APDFtagarrangesthePDFcontentinahierarchicalarchitectureortagtree。,font,brush,NewRectangle(40,80,480,80),format)paragraph2。EndMarkedContent(pdf。Pages(0))Dimfigure1AsPdfStructureElementarticle。AppendChildElement(PdfStandardStructTypes。Figure)SetAlternatetextfigure1。Altreplacementtext1figure1。BeginMarkedContent(pdf。Pages(0),Nothing)DimimageAsPdfImagePdfImage。FromFile(logo。png)pdf。Pages(0)。Canvas。DrawImage(image,NewPointF(40,200),NewSizeF(100,100))绘制图片到页面figure1。EndMarkedContent(pdf。Pages(0))Dimfigure2AsPdfStructureElementarticle。AppendChildElement(PdfStandardStructTypes。Figure)SetAlternatetextfigure2。Altreplacementtext2figure2。BeginMarkedContent(pdf。Pages(0),Nothing)pdf。Pages(0)。Canvas。DrawRectangle(PdfPens。Black,NewRectangle(300,200,100,100))figure2。EndMarkedContent(pdf。Pages(0))保存文档pdf。SaveToFile(CreateTaggedFileresult。pdf)System。Diagnostics。Process。Start(CreateTaggedFileresult。pdf)EndSubEndClassEndNamespace 参考资料: 〔1〕。https:247accessibledocuments。comwhatisataggedpdf 〔2〕。https:accessibilityi。orgwhatisataggedpdf