PDF/A是一种ISO标准的PDF文件格式版本,是为长期保存文件而设计的。它提供了一种工具,使电子文件在长时间之后依然以一种保留其外观的方式重现,而不管该文件是用什么工具和系统创建、储存或制作的。这种保留方式使PDF文件可自我持续。PDF/A通过嵌入在文档自身内部显示该文档的信息(内容、颜色、字体、图像,等等),存储这种自我持续。换句话说,PDF/A文件不要求任何附加的外部信息才能适当地显示。本文将介绍如何通过C#/VB.NET代码,以编程方式将PDF转换为PDF/A-1A、2A、3A、1B、2B 和 3B兼容的PDF。

程序环境:

本次测试时,在程序中引入 Free Spire.PDF.dll 文件。

方法1

​​Free Spire.PDF for .NET​​下载到本地,解压,找到 BIN 文件夹下的 Spire.PDF.dll。然后在 Visual Studio 中打开“解决方案资源管理器”,鼠标右键点击“引用”,“添加引用”,将本地路径 BIN 文件夹下的 dll 文件添加引用至程序。

方法2:

通过​NuGet​​安装。可通过以下 2 种方法安装:

1. 可以在 Visual Studio 中打开“解决方案资源管理器”,鼠标右键点击“引用”,“管理 NuGet 包”,然后搜索“Free Spire.PDF”,点击“安装”。等待程序安装完成。

2. 将以下内容复制到 PM 控制台安装。

Install-Package FreeSpire.PDF -Version 8.6.0

将PDF转为PDF/A

将PDF转换为PDF/A-1A、2A、3A、1B、2B 和 3B兼容PDF的详细步骤如下:

  • 指定输入文件路径和输出文件夹
  • 创建一个 PdfStandardsConverter 实例并将输入文件作为参数传入。
  • 使用 PdfStandardsConverter.ToPdfA1A() 方法将输入文件转换为 PdfA1A 一致性级别。
  • 使用 PdfStandardsConverter.ToPdfA1B() 方法将输入文件转换为 PdfA1B 一致性级别。
  • 使用 PdfStandardsConverter.ToPdfA2A() 方法将输入文件转换为 PdfA2A 一致性级别。
  • 使用 PdfStandardsConverter.ToPdfA2B() 方法将输入文件转换为 PdfA2B 一致性级别。
  • 使用 PdfStandardsConverter.ToPdfA3A() 方法将输入文件转换为 PdfA3A 一致性级别。
  • 使用 PdfStandardsConverter.ToPdfA3B() 方法将输入文件转换为 PdfA3B 一致性级别。

完整代码

【C#】

using System;
using Spire.Pdf.Conversion; namespace ConvertPdf2PdfA
{
class Program
{
static void Main(string[] args)
{
//指定输入文档路径
String inputFile = "成都第31届世界大学生夏季运动会.pdf"; //指定输出文档的存放文件夹
String outputFolder = @"D:\VS2022项目\free PDF\bin\Debug\输出结果\"; //创建PdfStandardsConverter对象,传入输入文档路径
PdfStandardsConverter converter = new PdfStandardsConverter(inputFile); //转换为PdfA1A
converter.ToPdfA1A(outputFolder + "ToPdfA1A.pdf"); //转换为PdfA1B
converter.ToPdfA1B(outputFolder + "ToPdfA1B.pdf"); //转换为PdfA2A
converter.ToPdfA2A(outputFolder + "ToPdfA2A.pdf"); //转换为PdfA2B
converter.ToPdfA2B(outputFolder + "ToPdfA2B.pdf"); //转换为PdfA3A
converter.ToPdfA3A(outputFolder + "ToPdfA3A.pdf"); //转换为PdfA3B
converter.ToPdfA3B(outputFolder + "ToPdfA3B.pdf");
}
}
}

【VB.NET】

Imports Spire.Pdf.Conversion

Namespace ConvertPdf2PdfA
Friend Class Program
Private Shared Sub Main(ByVal args As String())
'指定输入文档路径
Dim inputFile = "成都第31届世界大学生夏季运动会.pdf" '指定输出文档的存放文件夹
Dim outputFolder = "D:\VS2022项目\free PDF\bin\Debug\输出结果\" '创建PdfStandardsConverter对象,传入输入文档路径
Dim converter As PdfStandardsConverter = New PdfStandardsConverter(inputFile) '转换为PdfA1A
converter.ToPdfA1A(outputFolder & "ToPdfA1A.pdf") '转换为PdfA1B
converter.ToPdfA1B(outputFolder & "ToPdfA1B.pdf") '转换为PdfA2A
converter.ToPdfA2A(outputFolder & "ToPdfA2A.pdf") '转换为PdfA2B
converter.ToPdfA2B(outputFolder & "ToPdfA2B.pdf") '转换为PdfA3A
converter.ToPdfA3A(outputFolder & "ToPdfA3A.pdf") '转换为PdfA3B
converter.ToPdfA3B(outputFolder & "ToPdfA3B.pdf")
End Sub
End Class
End Namespace

效果图

—本文完—

C#/VB.NET:如何将PDF转为PDF/A的更多相关文章

  1. C#/VB.NET 将PDF转为PDF/X-1a:2001

    PDF/X-1a是一种PDF文件规范标准,在制作.使用PDF以及印刷时所需要遵循的技术条件,属于PDF/X-1标准下的一个子标准. PDF/X-1标准有由CGATS于1999年制定的PDF/X-1:1 ...

  2. Java 将PDF转为PDF/A

    通过将PDF格式转换为PDF/A格式,可保护文档布局.格式.字体.大小等不受更改,从而实现文档安全保护的目的,同时又能保证文档可读.可访问.本篇文章,将通过Java后端程序代码展示如何将PDF转为符合 ...

  3. Java 将PDF 转为Word、图片、SVG、XPS、Html、PDF/A

    本文将介绍通过Java编程来实现PDF文档转换的方法.包括: 1. PDF转为Word 2. PDF转为图片 3. PDF转为Html 4. PDF转为SVG 4.1 将PDF每一页转为单个的SVG ...

  4. C#/VB.NET 将PDF转为OFD

    OFD,全称Open Fixed-layout Document ,是一种可存储.读取以及编辑的国家标准版式的电子文档格式,属于中国的一种自主文件格式,在安全性上有可靠保证.为突破国外技术在我们软硬件 ...

  5. 【C#/VB.NET】 将PDF转为SVG/Image, SVG/Image转PDF

    SVG是一种图形文件格式,它的英文全称为Scalable Vector Graphics,意思为可缩放的矢量图形.它在放大或者改变尺寸的情况下其图形质量不会有所损失,且与 JPG 和 GIF 图像比起 ...

  6. C#/VB.NET 将PDF转为Excel

    PDF文档可以避免可防⽌他⼈⽆意中触到键盘修改⽂件内容.但是在避免他人⽆意修改的同时也妨碍了正常的修改.如果你想处理或修改PDF文档中的数据,不妨试试用Excel来实现.Excel拥有强大的数据处理功 ...

  7. 如何通过 C#/VB.NET 将 PDF 转为 Word

    众所周知,PDF 文档支持特长文件,集成度和安全可靠性都较高,可有效防止他人对 PDF 内容进行更改,所以在工作中深受大家喜爱.但是在工作中,我们不可避免的会对 PDF 文档进行修改或再编辑,这时我们 ...

  8. 将doc文件批量转为pdf文件

    需要将不少doc文件转为pdf,WPS带有这种功能,但是鼠标点击次数太多以后整个人都变得很烦躁 用了一下午去搜这方面的工具软件,找到若干.有一些免费,有一些试用的,但总归就找到一个真正能用,虽说生成的 ...

  9. C# 将Excel转为PDF时自定义表格纸张大小

    通过后端程序将Excel表格转为PDF格式时,直接转换后的PDF效果可能出现表格页面过小或者过大,导致页面内容分布不均.要改善转换后的文档效果,只需在转换前自定义表格纸张大小,即可调整转换后的PDF页 ...

  10. C# 将PDF转为线性化PDF

    线性化PDF文件是PDF文件的一种特殊格式,可以通过Internet更快地进行查看.线性化的PDF,在页面数量很多的情况下,更能突出表现出快速浏览的优势.下面是通过后端.NET程序实现将PDF文件转为 ...

随机推荐

  1. linux开机自启动tomcat或者其他应用

     开机自启动Tomcat: 1.创建一个脚本,touch tomcat_start.sh 2.编辑脚本,vim tomcat_start.sh #!/bin/sh #chkconfig: 2345 8 ...

  2. 20200926--图像旋转(奥赛一本通P96 9 多维数组)

    输入一个n行m列的黑白图像,将它顺时针旋转90度后输出. 输入:第1行包含两个整数n和m(1<=n<=100,1<=m<=100),表示图像包含像素点的行数和列数. 接下来n行 ...

  3. js根据输入天数,通过时间戳转日期时间,日期时间转时间戳,换算成多少天

    1.时间戳转日期时间 function timestampToDate(timestamp,index) {     var date = new Date(timestamp + index * 8 ...

  4. Python+Django(2)——创建应用程序

    新打开一个终端窗口,切换到manage.py所在的目录 激活虚拟环境:ll_env\Scripts\activate 命令startapp appname 让Django建立创建应用程序所需的基础设施 ...

  5. Spring Boot 中的异步调用

    通常我们开发的程序都是同步调用的,即程序按照代码的顺序一行一行的逐步往下执行,每一行代码都必须等待上一行代码执行完毕才能开始执行.而异步编程则没有这个限制,代码的调用不再是阻塞的.所以在一些情景下,通 ...

  6. SDN实验1

    (一)基本要求 使用Mininet可视化工具,生成下图所示的拓扑,并保存拓扑文件名为学号.py. 使用Mininet的命令行生成如下拓扑: a) 3台交换机,每个交换机连接1台主机,3台交换机连接成一 ...

  7. 在虚拟机上安装CentOS6.5(minimal)

    在虚拟机上安装CentOS6.5(minimal) 2017年04月04日 09:40:38 kongmd 阅读数:2171   1.安装CentOS6.5 1.首先下载VMware ,和CentOS ...

  8. Docker部署Reids单机

    一.Redis镜像拉取 docker pull redis 指定版本 docker pull redis:5.0.8 二.Redis单实例安装 1.创建容器挂在目录 (-p 递归创建目录,上级目录不存 ...

  9. SQL Server之Cross apply

    1 --这样是不行的 2 select sys.dm_exec_sql_text(most_recent_sql_handle) from sys.dm_exec_connections 3 4 -- ...

  10. C#向其实进程子窗体发送指令

    近日,想在自己的软件简单控制其它软件的最大化最小化,想到直接向进程发送指令,结果一直无效,经过Spy++发现,原来快捷方式在子窗体上,所以需要遍历子窗体在发送指令,以下为参考代码: 1 [DllImp ...