通过将PDF格式转换为PDF/A格式,可保护文档布局、格式、字体、大小等不受更改,从而实现文档安全保护的目的,同时又能保证文档可读、可访问。本篇文章,将通过Java后端程序代码展示如何将PDF转为符合PDF/A1A, 2A, 3A, 1B, 2B和3B标准的PDF。以下是具体方法及步骤。

Jar包导入

本次程序中导入的是Spire.Pdf.jar。可在Maven程序中配置pom.xml如下内容来实现下载导入:

<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.pdf</artifactId>
<version>5.1.0</version>
</dependency>
</dependencies>

​或者,可将 Jar 下载到本地,解压,找到lib文件夹下的jar文件;然后在Java程序中执行如下操作手动导入:

将PDF转为PDF/A

Spire.PDF for Java中的PdfStandardsConverter类下面枚举了可将PDF转为本地PDF/A文件和流文件的多种方法,如下表:

方法

解释

PdfStandardsConverter.toPdfA1A(String filePath)

保存为PDF/A1A到指定路径

PdfStandardsConverter.toPdfA1A(OutputStream stream)

保存为PDF/A1A到流

PdfStandardsConverter.toPdfA1B (String filePath)

保存为PDF/A1B到指定路径

PdfStandardsConverter.toPdfA1B(OutputStream stream)

保存为PDF/A1B到流

PdfStandardsConverter.toPdfA2A(String filePath)

保存为PDF/A2A到指定路径

PdfStandardsConverter.toPdfA2A(OutputStream stream)

保存为PDF/A2A到流

PdfStandardsConverter.toPdfA2B(String filePath)

保存为PDF/A2B到指定路径

PdfStandardsConverter.toPdfA2B(OutputStream stream)

保存为PDF/A2B到流

PdfStandardsConverter.toPdfA3A(String filePath)

保存为PDF/A3A到指定路径

PdfStandardsConverter.toPdfA3A(OutputStream stream)

保存为PDF/A3A到流

PdfStandardsConverter.toPdfA3B(String filePath)

保存为PDF/A3B到指定路径

PdfStandardsConverter.toPdfA3B(OutputStream stream)

保存为PDF/A3B到流

实现格式转换时,只需要两行代码即可完成转换,得到目标PDF/A格式。以下是实现转换的代码示例步骤:

  • 实例化PdfStandardsConverter类的对象,并加载PDF源文档。
  • 通过调用上述表格中的指定方法将PDF转为指定标准格式的PDF/A,并保存。

Java

import com.spire.pdf.conversion.PdfStandardsConverter;

public class PDFtoPDFA {
public static void main(String[]args){ //创建PdfStandardsConverter类的对象,传入文档路径
PdfStandardsConverter converter = new PdfStandardsConverter("sample.pdf"); //转换为PdfA1A
converter.toPdfA1A("ToPdfA1A.pdf"); //转换为PdfA1B
converter.toPdfA1B("ToPdfA1B.pdf"); //转换为PdfA2A
converter.toPdfA2A("ToPdfA2A.pdf"); //转换为PdfA2B
converter.toPdfA2B( "ToPdfA2B.pdf"); //转换为PdfA3A
converter.toPdfA3A( "ToPdfA3A.pdf"); //转换为PdfA3B
converter.toPdfA3B( "ToPdfA3B.pdf");
}
}

PDF/A格式转换效果,如图:

—End—

Java 将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 将Word转为PDF、PNG、SVG、RTF、XPS、TXT、XML

    同一文档在不同的编译或阅读环境中,需要使用特定的文档格式来打开,通常需要通过转换文档格式的方式来实现.下面将介绍在Java程序中如何来转换Word文档为其他几种常见文档格式,如PDF.图片png.sv ...

  3. Java 将Excel转为PDF

    本文将介绍在Java程序中如何将Excel工作簿转为PDF文档的,包括: 将整个工作簿转为PDF 将指定工作表转为PDF   使用工具:Free Spire.XLS for Java (免费版) Ja ...

  4. Java 将Html转为PDF(二)

    前面介绍了如何通过插件的方式将Html文件转为PDF,该方法需要使用Spire.PDF for Java 3.6.6或者之后的新版本,可根据自己的系统选择不同插件来实现转换.本文提供另外一种转换方法, ...

  5. Java 将XML转为PDF

    可扩展标记语言(XML)文件是一种标准的文本文件,它使用特定的标记来描述文档的结构以及其他特性.通过将XML转换为PDF,能够便于文件传输及共享.本文,将介绍通过Java代码来实现该格式转换的方法. ...

  6. Java 将word转为pdf jacob方式

    package com.doctopdf; import java.io.File; import com.jacob.activeX.ActiveXComponent; import com.jac ...

  7. java 将word转为PDF (100%与word软件转换一样)

    jdk环境:jdk_8.0.1310.11_64    (64位) 1.引入pom文件 <!-- word转pdf(依赖windows本地的wps) --> <dependency& ...

  8. Java 将Html转为PDF

    本文介绍如何在Java程序中将html文件转换成PDF文件.转换时,需要注意以下两点: 一.需要使用转换插件 可根据不同的系统来下载对应的插件,下载地址:windows-x86.zip, window ...

  9. 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 ...

随机推荐

  1. 返回记录中的指定内容Record.Field…(Power Query 之 M 语言)

    返回指定字段: = Record.Field( 记录, "字段名") = Record.FieldOrDefault( 记录, "字段名", 找不到时返回的值) ...

  2. OpenWrt之关闭IPv6

    目录 OpenWrt之关闭IPv6 1.前言 2.WAN口设置 3.LAN口设置 4.保存并应用 5.防火墙设置 6.DHCP/DNS设置 1)SSH连接路由器 2)输入第一条命令,按回车执行 3)输 ...

  3. 小迪安全 Web安全 基础入门 - 第九天 信息打点 - CDN绕过篇&漏洞回链&接口探针&全网扫描&反向邮件

    一. CDN知识-工作原理及阻碍 (一)工作原理 1.概述:CDN的全称是Content Delivery Network,即内容分发网络.CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地 ...

  4. CF1003C Intense Heat 题解

    Content 给定一个长度为 \(n\) 的数列,求数列中所有长度 \(\geqslant k\) 的区间的最大平均值. 数据范围:\(1\leqslant k,n,a_i\leqslant 500 ...

  5. openstack 一键部署云主机

    两边虚拟机时间不一样cinder会报错. 在computer节输入命令 ntpdate 192.168.10.100 systemctl restart openstack-cinder-volume ...

  6. ffmpeg、数字音频教程、JUCE、std::tuple

    下载网易云音乐的视频 https://yunyinyue.iiilab.com/ 模板教程: https://github.com/wuye9036/CppTemplateTutorial/blob/ ...

  7. 【LeetCode】555. Split Concatenated Strings 解题报告(C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 遍历 日期 题目地址:https://leetcode ...

  8. 【LeetCode】160. Intersection of Two Linked Lists 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 双指针 栈 日期 题目地址:https://leet ...

  9. 【LeetCode】785. Is Graph Bipartite? 解题报告(Python)

    [LeetCode]785. Is Graph Bipartite? 解题报告(Python) 作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu. ...

  10. 【剑指Offer】变态跳台阶 解题报告(Python)

    题目地址:https://www.nowcoder.com/ta/coding-interviews 题目描述: 一只青蛙一次可以跳上1级台阶,也可以跳上2级--它也可以跳上n级.求该青蛙跳上一个n级 ...