VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > C#教程 >
  • C#/VB.NET 创建PDF/UA文件

1.什么是PDF/UA文件

PDF/UA,即Universally Accessible PDF,该格式的PDF文件是于2012年8月以ISO标准14289-1发布的、具有普遍可访问的PDF文档标准。为带标签的PDF文档(Tagged PDF Document)和表单的开发人员和作者设定了明确的规则。(PDF/UA-1是作为PDF/UA标准的第一部分,PDF/UA-2作为PDF/UA标准的第二部分)[1]

2.文件格式要求

PDF/UA在其基础上有着明确的要求,即该标准都是基于PDF标签,所有PDF/UA文档都必须以PDF标签来正确标记,并且,要求标签在语义上适当,并按逻辑顺序排列。[1]

3.如何创建PDF/UA文件

PDF/UA文件作为PDF文件的一种标准格式,要创建该标准的的PDF文档,可使用调用PDF API的方法来创建。下面,是以Spire.PDF for .NET来创建的方法。
可在Visual Studio 中通过NuGet搜索“Spire.PDF”安装dll到程序中;
或者下载(hotfix版本)到本地,手动添加本地路径下的Spire.Pdf.dll文件到程序。
C#
复制代码
using Spire.Pdf;
using Spire.Pdf.Graphics;
using Spire.Pdf.Interchange.TaggedPdf;
using System.Drawing;
namespace CreatePDFUAfile
{
 class Program
    {
 static void Main(string[] args)
        {
            //创建PdfDocument类的对象
            PdfDocument doc = new PdfDocument();

             //添加一页
            doc.Pages.Add();

             //设置tab order
            doc.Pages[0].SetTabOrder(TabOrder.Structure);

             //创建PdfTaggedContent类的对象
            PdfTaggedContent taggedContent = new PdfTaggedContent(doc);
            taggedContent.SetLanguage("en-US");
            taggedContent.SetTitle("test");

             //设置PDF/UA1验证
            taggedContent.SetPdfUA1Identification();

             //创建字体、画刷
            PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Times New Roman", 10), true);
            PdfSolidBrush brush = new PdfSolidBrush(Color.Black);

             //添加要素
            PdfStructureElement article = taggedContent.StructureTreeRoot.AppendChildElement(PdfStandardStructTypes.Document);
            PdfStructureElement paragraph1 = article.AppendChildElement(PdfStandardStructTypes.Paragraph);
            PdfStructureElement span1 = paragraph1.AppendChildElement(PdfStandardStructTypes.Span);
            span1.BeginMarkedContent(doc.Pages[0]);
            PdfStringFormat format = new PdfStringFormat(PdfTextAlignment.Justify);
            doc.Pages[0].Canvas.DrawString("PDF/UA was published as ISO Standard 14289-1 in August 2012" +
 " and is by far the first complete definition " +
 "of a set of requirements for universally accessible PDF documents.",
               font, brush, new Rectangle(40, 80, 450, 80), format);
            span1.EndMarkedContent(doc.Pages[0]);
            PdfStructureElement paragraph2 = article.AppendChildElement(PdfStandardStructTypes.Paragraph);
            paragraph2.BeginMarkedContent(doc.Pages[0]);
            doc.Pages[0].Canvas.DrawString("The PDF/UA has some definite requirements at its base that act as the essence of this standard.",
               font, brush, new Rectangle(40, 120, 450, 60), format);
            paragraph2.EndMarkedContent(doc.Pages[0]);
            PdfStructureElement figure1 = article.AppendChildElement(PdfStandardStructTypes.Figure);
             //Set Alternate text 
            figure1.Alt = "replacement text1";
            figure1.BeginMarkedContent(doc.Pages[0], null);
            PdfImage image = PdfImage.FromFile(@"logo.jpg");
            doc.Pages[0].Canvas.DrawImage(image, new PointF(40, 200), new SizeF(100, 100));
            figure1.EndMarkedContent(doc.Pages[0]);
            PdfStructureElement figure2 = article.AppendChildElement(PdfStandardStructTypes.Figure);
             //Set Alternate text
            figure2.Alt = "replacement text2";
            figure2.BeginMarkedContent(doc.Pages[0], null);
            doc.Pages[0].Canvas.DrawRectangle(PdfPens.Black, new Rectangle(300, 200, 100, 100));
            figure2.EndMarkedContent(doc.Pages[0]);

             //保存文档
            doc.SaveToFile("CreatePDFUAFile_result.pdf");
            System.Diagnostics.Process.Start("CreatePDFUAFile_result.pdf");
        }
    }
}
复制代码

VB.NET

复制代码
Imports Spire.Pdf
Imports Spire.Pdf.Graphics
Imports Spire.Pdf.Interchange.TaggedPdf
Imports System.Drawing

Namespace CreatePDFUAfile
    Class Program
        Private Shared Sub Main(args As String())
            '创建PdfDocument类的对象
            Dim doc As New PdfDocument()

            '添加一页
            doc.Pages.Add()

            '设置tab order
            doc.Pages(0).SetTabOrder(TabOrder.[Structure])

            '创建PdfTaggedContent类的对象
            Dim taggedContent As New PdfTaggedContent(doc)
            taggedContent.SetLanguage("en-US")
            taggedContent.SetTitle("test")

            '设置PDF/UA1验证
            taggedContent.SetPdfUA1Identification()

            '创建字体、画刷
            Dim font As New PdfTrueTypeFont(New Font("Times New Roman", 10), True)
            Dim brush As New PdfSolidBrush(Color.Black)

            '添加要素
            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(doc.Pages(0))

            Dim format As New PdfStringFormat(PdfTextAlignment.Justify)
            doc.Pages(0).Canvas.DrawString("PDF/UA was published as ISO Standard 14289-1 in August 2012" + " and is by far the first complete definition " + "of a set of requirements for universally accessible PDF documents.", font, brush, New Rectangle(40, 80, 450, 80), format)
            span1.EndMarkedContent(doc.Pages(0))

            Dim paragraph2 As PdfStructureElement = article.AppendChildElement(PdfStandardStructTypes.Paragraph)
            paragraph2.BeginMarkedContent(doc.Pages(0))
            doc.Pages(0).Canvas.DrawString("The PDF/UA has some definite requirements at its base that act as the essence of this standard.", font, brush, New Rectangle(40, 120, 450, 60), format)
            paragraph2.EndMarkedContent(doc.Pages(0))

            Dim figure1 As PdfStructureElement = article.AppendChildElement(PdfStandardStructTypes.Figure)
            'Set Alternate text 
            figure1.Alt = "replacement text1"
            figure1.BeginMarkedContent(doc.Pages(0), Nothing)
            Dim image As PdfImage = PdfImage.FromFile("logo.jpg")
            doc.Pages(0).Canvas.DrawImage(image, New PointF(40, 200), New SizeF(100, 100))
            figure1.EndMarkedContent(doc.Pages(0))

            Dim figure2 As PdfStructureElement = article.AppendChildElement(PdfStandardStructTypes.Figure)
            'Set Alternate text
            figure2.Alt = "replacement text2"
            figure2.BeginMarkedContent(doc.Pages(0), Nothing)
            doc.Pages(0).Canvas.DrawRectangle(PdfPens.Black, New Rectangle(300, 200, 100, 100))
            figure2.EndMarkedContent(doc.Pages(0))

            '保存文档
            doc.SaveToFile("CreatePDFUAFile_result.pdf")
            System.Diagnostics.Process.Start("CreatePDFUAFile_result.pdf")
        End Sub
    End Class
End Namespace
复制代码

 

出处:https://www.cnblogs.com/Yesi/p/16618895.html


相关教程