最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#實現(xiàn)創(chuàng)建標簽PDF文件的示例代碼

 更新時間:2022年08月16日 11:30:36   作者:E-iceblue  
標簽PDF文件包含描述文檔結構和各種文檔元素順序的元數(shù)據(jù),是一種包含后端提供的可訪問標記,管理閱讀順序和文檔內容表示的邏輯結構的PDF文件。本文將用C#實現(xiàn)創(chuàng)建標簽PDF文件,需要的可以參考一下

關于“標簽PDF文件(Tagged PDF)

標簽PDF文件包含描述文檔結構和各種文檔元素順序的元數(shù)據(jù),是一種包含后端提供的可訪問標記,管理閱讀順序和文檔內容表示的邏輯結構的PDF文件[1]。

關于“標簽(Tag)

PDF標簽是通過屏幕閱讀器等支持技術訪問PDF文檔內容的關鍵。PDF標記在層次結構或標記樹(tag tree)中排列PDF內容[1]。

這里的標簽是一種不可見的標簽,它提供關于PDF文檔內容的重要信息。帶標簽的PDF包含許多不同類型的標簽,但最常用的是文本、替代文本(圖像的替代文本)、標題、鏈接和鏈接描述[2]。

PDF標簽的用處及意義

添加PDF標簽不會改變文檔的視覺外觀,但它提供了一個不可見的層,用于格式化文檔與屏幕閱讀器協(xié)作工作,這就使得從PDF文件中提取文本和圖形變得更容易,并幫助屏幕閱讀器以正確的順序顯示文件內容。[2]

PDF標簽還可以用于將內容傳輸?shù)狡聊惠^小的設備,如智能手機和平板電腦。[2]

如何創(chuàng)建標簽PDF文件

本文將要介紹的創(chuàng)建方法是以后端C#程序代碼的方式來創(chuàng)建標簽PDF文件。創(chuàng)建時,通過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)
        {
            //創(chuàng)建PdfDocument類的對象
            PdfDocument pdf = new PdfDocument();

            //添加一頁
            pdf.Pages.Add(PdfPageSize.A4);

            //設置tab order
            pdf.Pages[0].SetTabOrder(TabOrder.Structure);

            //創(chuàng)建PdfTaggedContent類的對象
            PdfTaggedContent taggedContent = new PdfTaggedContent(pdf);
            taggedContent.SetLanguage("en-US");
            taggedContent.SetTitle("test");

            //創(chuàng)建字體、畫刷、字符串格式
            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())
            '創(chuàng)建PdfDocument類的對象
            Dim pdf As New PdfDocument()

            '添加一頁
            pdf.Pages.Add(PdfPageSize.A4)

            '設置tab order
            pdf.Pages(0).SetTabOrder(TabOrder.[Structure])

            '創(chuàng)建PdfTaggedContent類的對象
            Dim taggedContent As New PdfTaggedContent(pdf)
            taggedContent.SetLanguage("en-US")
            taggedContent.SetTitle("test")

            '創(chuàng)建字體、畫刷、字符串格式
            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/

到此這篇關于C#實現(xiàn)創(chuàng)建標簽PDF文件的示例代碼的文章就介紹到這了,更多相關C#創(chuàng)建標簽PDF內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • C#中l(wèi)ock用法詳解

    C#中l(wèi)ock用法詳解

    這篇文章主要介紹了C#中l(wèi)ock用法,以實例形式詳細分析了lock語句的用法及用途,需要的朋友可以參考下
    2014-11-11
  • C#打包部署并把.net framework框架打到安裝包的方法步驟

    C#打包部署并把.net framework框架打到安裝包的方法步驟

    打包c#程序時,有時需要添加.net framework組件到安裝包,本文就來介紹一下C#打包部署并把.net framework框架打到安裝包的方法步驟,具有一定的參考價值,感興趣的可以了解一下
    2023-10-10
  • 基于XSLT調試的相關問題

    基于XSLT調試的相關問題

    本篇文章是對XSLT調試的相關問題進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • unity實現(xiàn)車方向盤轉動效果

    unity實現(xiàn)車方向盤轉動效果

    這篇文章主要為大家詳細介紹了unity實現(xiàn)車方向盤轉動效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • c#實現(xiàn)metro文件壓縮解壓示例

    c#實現(xiàn)metro文件壓縮解壓示例

    這篇文章主要介紹了c#實現(xiàn)metro文件壓縮解壓示例,實現(xiàn)了zip中增加一張新圖片、刪除文件的方法,需要的朋友可以參考下
    2014-03-03
  • C#單例類的實現(xiàn)方法

    C#單例類的實現(xiàn)方法

    這篇文章主要介紹了C#單例類的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-06-06
  • C#沉淀之委托的深入講解

    C#沉淀之委托的深入講解

    如果要給方法傳遞一個方法參數(shù)時,就可以使用委托。下面這篇文章主要給大家介紹了關于C#沉淀之委托的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2018-09-09
  • C# 線程相關知識總結

    C# 線程相關知識總結

    這篇文章主要介紹了C# 線程相關知識,文中講解非常細致,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-06-06
  • C# 創(chuàng)建文本文件寫入讀取實現(xiàn)代碼

    C# 創(chuàng)建文本文件寫入讀取實現(xiàn)代碼

    C# 創(chuàng)建文本文件寫入讀取,可以用來做系統(tǒng)日志或程序操作日志或者錯誤記錄,需要的朋友可以參考下。
    2011-11-11
  • C#操作LINQ to SQL組件進行數(shù)據(jù)庫建模的基本教程

    C#操作LINQ to SQL組件進行數(shù)據(jù)庫建模的基本教程

    這篇文章主要介紹了C#操作LINQ to SQL組件進行數(shù)據(jù)庫建模的基本教程,LINQ to SQL被集成在.NET框架之中,需要的朋友可以參考下
    2016-03-03

最新評論

长沙县| 勃利县| 微山县| 安陆市| 阿克| 淳安县| 大足县| 新宾| 绍兴县| 巩义市| 郴州市| 汉中市| 阜康市| 叶城县| 斗六市| 霸州市| 伊金霍洛旗| 溆浦县| 鄢陵县| 大荔县| 湄潭县| 渑池县| 故城县| 南部县| 民县| 天长市| 文水县| 长治市| 高唐县| 阿瓦提县| 沿河| 贡嘎县| 阳东县| 历史| 绵阳市| 江华| 潜江市| 肇东市| 安远县| 泽库县| 汪清县|