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. STM32cubemx-HAL库串口断线问题

    STM32cubemx:version5.1 Chip: STM32F446RE IDE:Keil5 Q:小项目上写了个简单的通信包,波特率230400,数据量较大1600Byte/s,DMA的方式实 ...

  2. Flutter在iOS中一些点

    1. ios对Flutter有如下依赖 Flutter.framework:     Flutter engine等: APP.framework:业务代码, 由dart代码生成.App.framew ...

  3. quartus报错 Error (10054): Verilog HDL File I/O error at sdram_ctrl_tb.v(6): can't open Verilog Design File "Sdram_params.h"

    解决方法:包含完整路径. 比如我一开始是:`include "Sdram_params.h" 错误(改为:`include "F:\FPGA\exce\uart2sdra ...

  4. mysql零基础-3

    第17章_触发器 在实际开发中,我们经常会遇到这样的情况:有 2 个或者多个相互关联的表,如 商品信息 和 库存信息 分 别存放在 2 个不同的数据表中,我们在添加一条新商品记录的时候,为了保证数据的 ...

  5. h5移动端识别二维码信息

    jsqr插件 图片跨域时不允许绘制到canvas,所以先转blob在画到canvas上面就可以,如果不跨域直接画就行 function getImageBlob (url) {             ...

  6. Element-ui树形控件el-tree鼠标移入显示隐藏效果超简单

    显示效果: 废话不多说,直接上代码 <template> <el-tree default-expand-all :data="data"> <spa ...

  7. vue 打包后可放置在任意名称的文件夹下

    1. build->utils.js: 2. build->webpack.prod.conf.js: 3. config->index.js:

  8. Longest Peak

    refer to: https://www.algoexpert.io/questions/Longest%20Peak Problem Statement Sample Analysis Code ...

  9. JS笔记(四):面向对象、异常处理

    镇楼图 Pixiv:torino 六.JS中的面向对象 类(class) 博主视为你已拥有相关基础,这里不再赘述相关概念 类的语法如下,class在本质上是function,可以说class只是针对构 ...

  10. 12.7 linux学习第十四天

    今天老刘开始讲第10章,主要讲Ahache服务和SELinux安全子系统 10.1 网站服务程序 1970年,作为互联网前身的ARPANET(阿帕网)已初具雏形,并开始向非军用部门开放,许多大学和商业 ...