C创建标签PDF文件
Q1:关于"标签PDF文件(Tagged PDF)"
标签PDF文件包含描述文档结构和各种文档元素顺序的元数据,是一种包含后端提供的可访问标记,管理阅读顺序和文档内容表示的逻辑结构的PDF文件 [1] 。Q2:关于"标签(Tag)"
PDF标签是通过屏幕阅读器等支持技术访问PDF文档内容的关键。PDF标记在层次结构或标记树(tag tree)中排列PDF内容 [1] 。
这里的标签是一种不可见的标签,它提供关于PDF文档内容的重要信息。带标签的PDF包含许多不同类型的标签,但最常用的是文本、替代文本(图像的替代文本)、标题、链接和链接描述 [2] 。Q3:PDF标签的用处及意义
添加PDF标签不会改变文档的视觉外观,但它提供了一个不可见的层,用于格式化文档与屏幕阅读器协作工作,这就使得从PDF文件中提取文本和图形变得更容易,并帮助屏幕阅读器以正确的顺序显示文件内容。 [2]
PDF标签还可以用于将内容传输到屏幕较小的设备,如智能手机和平板电脑。 [2] Q4:如何创建标签PDF文件
本文将要介绍的创建方法是以后端C#程序代码的方式来创建标签PDF文件。创建时,通过NuGet安装引用PDF API- Spire.PDF for .NET ,调用其提供的类及相关方法来标记内容、结构元素等。
C#
using Spire.Pdf; using Spire.Pdf.Graphics; using Spire.Pdf.Interchange.TaggedPdf; using System.Drawing; namespace CreateTaggedPDF { class Program { static void Main(string[] args) { //创建PdfDocument类的对象 PdfDocument pdf = new PdfDocument(); //添加一页 pdf.Pages.Add(PdfPageSize.A4); //设置tab order pdf.Pages[0].SetTabOrder(TabOrder.Structure); //创建PdfTaggedContent类的对象 PdfTaggedContent taggedContent = new PdfTaggedContent(pdf); taggedContent.SetLanguage("en-US"); taggedContent.SetTitle("test"); //创建字体、画刷、字符串格式 PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Times New Roman", 10), true); PdfSolidBrush brush = new PdfSolidBrush(Color.Black); PdfStringFormat format = new PdfStringFormat(PdfTextAlignment.Left); //添加elements PdfStructureElement article = taggedContent.StructureTreeRoot.AppendChildElement(PdfStandardStructTypes.Document); PdfStructureElement paragraph1 = article.AppendChildElement(PdfStandardStructTypes.Paragraph); PdfStructureElement span1 = paragraph1.AppendChildElement(PdfStandardStructTypes.Span); span1.BeginMarkedContent(pdf.Pages[0]); //绘制内容到页面 pdf.Pages[0].Canvas.DrawString("A PDF tag is the key to accessing the contents of PDF documents with supporting technologies such as screen readers. ", font, brush, new Rectangle(40, 0, 480, 80), format); span1.EndMarkedContent(pdf.Pages[0]); PdfStructureElement paragraph2 = article.AppendChildElement(PdfStandardStructTypes.Paragraph); paragraph2.BeginMarkedContent(pdf.Pages[0]); pdf.Pages[0].Canvas.DrawString("A PDF tag arranges the PDF content in a hierarchical architecture or tag tree.", font, brush, new Rectangle(40, 80, 480, 80), format); paragraph2.EndMarkedContent(pdf.Pages[0]); PdfStructureElement figure1 = article.AppendChildElement(PdfStandardStructTypes.Figure); //Set Alternate text figure1.Alt = "replacement text1"; figure1.BeginMarkedContent(pdf.Pages[0], null); PdfImage image = PdfImage.FromFile(@"logo.png"); pdf.Pages[0].Canvas.DrawImage(image, new PointF(40, 200), new SizeF(100, 100));//绘制图片到页面 figure1.EndMarkedContent(pdf.Pages[0]); PdfStructureElement figure2 = article.AppendChildElement(PdfStandardStructTypes.Figure); //Set Alternate text figure2.Alt = "replacement text2"; figure2.BeginMarkedContent(pdf.Pages[0], null); pdf.Pages[0].Canvas.DrawRectangle(PdfPens.Black, new Rectangle(300, 200, 100, 100)); figure2.EndMarkedContent(pdf.Pages[0]); //保存文档 pdf.SaveToFile("CreateTaggedFile_result.pdf"); } } }
vb.net
Imports Spire.Pdf Imports Spire.Pdf.Graphics Imports Spire.Pdf.Interchange.TaggedPdf Imports System.Drawing Namespace CreateTaggedPDF Class Program Private Shared Sub Main(args As String()) "创建PdfDocument类的对象 Dim pdf As New PdfDocument() "添加一页 pdf.Pages.Add(PdfPageSize.A4) "设置tab order pdf.Pages(0).SetTabOrder(TabOrder.[Structure]) "创建PdfTaggedContent类的对象 Dim taggedContent As New PdfTaggedContent(pdf) taggedContent.SetLanguage("en-US") taggedContent.SetTitle("test") "创建字体、画刷、字符串格式 Dim font As New PdfTrueTypeFont(New Font("Times New Roman", 10), True) Dim brush As New PdfSolidBrush(Color.Black) Dim format As New PdfStringFormat(PdfTextAlignment.Left) "添加elements Dim article As PdfStructureElement = taggedContent.StructureTreeRoot.AppendChildElement(PdfStandardStructTypes.Document) Dim paragraph1 As PdfStructureElement = article.AppendChildElement(PdfStandardStructTypes.Paragraph) Dim span1 As PdfStructureElement = paragraph1.AppendChildElement(PdfStandardStructTypes.Span) span1.BeginMarkedContent(pdf.Pages(0)) "绘制内容到页面 pdf.Pages(0).Canvas.DrawString("A PDF tag is the key to accessing the contents of PDF documents with supporting technologies such as screen readers. ", font, brush, New Rectangle(40, 0, 480, 80), format) span1.EndMarkedContent(pdf.Pages(0)) Dim paragraph2 As PdfStructureElement = article.AppendChildElement(PdfStandardStructTypes.Paragraph) paragraph2.BeginMarkedContent(pdf.Pages(0)) pdf.Pages(0).Canvas.DrawString("A PDF tag arranges the PDF content in a hierarchical architecture or tag tree.", font, brush, New Rectangle(40, 80, 480, 80), format) paragraph2.EndMarkedContent(pdf.Pages(0)) Dim figure1 As PdfStructureElement = article.AppendChildElement(PdfStandardStructTypes.Figure) "Set Alternate text figure1.Alt = "replacement text1" figure1.BeginMarkedContent(pdf.Pages(0), Nothing) Dim image As PdfImage = PdfImage.FromFile("logo.png") pdf.Pages(0).Canvas.DrawImage(image, New PointF(40, 200), New SizeF(100, 100)) "绘制图片到页面 figure1.EndMarkedContent(pdf.Pages(0)) Dim figure2 As PdfStructureElement = article.AppendChildElement(PdfStandardStructTypes.Figure) "Set Alternate text figure2.Alt = "replacement text2" figure2.BeginMarkedContent(pdf.Pages(0), Nothing) pdf.Pages(0).Canvas.DrawRectangle(PdfPens.Black, New Rectangle(300, 200, 100, 100)) figure2.EndMarkedContent(pdf.Pages(0)) "保存文档 pdf.SaveToFile("CreateTaggedFile_result.pdf") System.Diagnostics.Process.Start("CreateTaggedFile_result.pdf") End Sub End Class End Namespace
参考资料:
[1]. https://247accessibledocuments.com/what-is-a-tagged-pdf/
[2]. https://accessibility-i.org/what-is-a-tagged-pdf/
年底酒圈怪象!茅台在掉价,酒精勾兑酒牛栏山却在涨价!这是为何年底酒圈出现了一个奇怪的现象,作为我国高端白酒代表的茅台,除了飞天以外,旗下的高端品牌都在大幅度的掉价,就拿以前的虎年茅台来降,价格最高的时候高达8000多,但是年底包括前一段时间
大城名园万物和谐植物如何防止DNA出错?转录研究有新发现!DNA是遗传信息的载体,是最重要的生物信息分子,也是分子生物学研究的主要对象。自然界除了动物之外,植物也有DNA。近日记者从华南国家植物园获悉,其研究团队对植物转录起始调控机制研究
酒精不能对着手机喷生活中的物品通常采用84等含氯消毒剂或75酒精进行喷洒消毒,由于含氯消毒剂对很多物品有腐蚀性,因此,不可用于各种显示屏。相较84等含氯消毒液,75的酒精更温和,且具有消毒速度快挥发
化妆品原料脂肪酸天气冷了,我们会使用膏霜类护肤品护肤,而膏霜类的化妆品蕴含的油性原料来自于脂肪酸,它也可以作为这类产品的乳化剂。市面上常见的化妆品原料饱和脂肪酸有以下几种十二酸(月桂酸)十四酸(肉
深圳2023元旦旅游市场平稳回暖来源读特2023年元旦是我国优化防疫政策之后的第一个小长假,在深圳市促进文体旅游消费复苏五项政策的合力作用下,旅游市场平稳回暖,各大景区客流稳中向好,市民与游客白天畅游夜场欢庆,迎
跨年夜天空飞来奇幻大鱼武汉欢乐谷赏锦鲤灯迎新年妈妈快看,天上有大鱼在飞!12月31日晚,武汉欢乐谷上演天空之鱼跨年秀,一位小朋友指着天空中的奇幻飞舞的发光大鱼,和妈妈分享自己激动的心情。不少游客也举起手机,记录下这神奇的摸YU
洛阳再度牵手爱奇艺打造原创沉浸式VR项目风起洛阳河南日报客户端记者郭歌实习生曹润泽洛阳文化旅游投资集团党委书记董事长崔光焱洛阳历史文化保护利用发展集团党委书记董事长薛善民爱奇艺副总裁张航爱奇艺旗下沐心文化传媒有限公司董事长何冀兵
山西吕梁柳林抖气河抖气河是什么?你说,抖气河是柳林的母亲河,奔腾四十里到黄河我说,抖气河是冬季不结冰,会燃烧的神奇之河他说,抖气河是国家3A景区,四季景色都很美柳林人却说,抖气河是水润万物而不争的包
浙江天姥山下的古村落,谢灵运的驻足之地,小巧雅致但风光秀丽我去浙江省绍兴市天姥山脚下游玩,本来是为寻访班竹村和郑板桥村而去的,因为这们都是既有风光又有故事的古村落。没曾想,在前往这两个古村的路上又遇到一个古村,这个村子没有前两者有名,但是
西安至秦岭冰雪游定制服务列车受游客热捧图为列车抵达秦岭站。国铁西安局供图中新网西安1月1日电(张远焦键)Y509次西安至秦岭定制服务列车1日满载着1400余名旅客从西安火车站缓缓驶出,一路向西开往秦岭,为旅客开启了秦岭
中国游客最爱囤什么日本药?去日本旅游,逛药店是非常多的中国游客必须履行的一个程序,很多旅游团也会写明推荐的药店给游客备选。其实这绝对不是中国游客独家的喜好,亚洲各国游客都喜欢购买日本的二类和三类药品。欧美游