Java实现将PDF转为PDF/A
作者:E-iceblue 发布时间:2023-03-16 00:54:22
标签:Java,PDF,PDF/A
通过将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格式转换效果,如图:
来源:https://www.cnblogs.com/Yesi/p/15800900.html


猜你喜欢
- 以下这段C#代码实现的功能是在屏幕上画图的效果!具体代码如下://DllImport所在的名字空间 using System.Ru
- 区别1.使用范围和规范不同filter是servlet规范规定的,只能用在web程序中. * 即可以用在web程序中, 也可以用于appli
- 今天一直在绞尽脑汁的寻找解决两个字符之间的内容如何输出的问题,刚开始就使用了万能的正则表达式;但是不知哪里的原因自己的数据一直出不来,觉得应
- // 举个例子:一个网站有用户系统、商家系统、网站后台3个系统//可以分3个userType, user ,shop , system//网
- 目录一、概述二、环境配置及代码步骤1. 环境配置2. 代码步骤一、概述PDF打印小册子是指将PDF格式文档在打印成刊物前需要提前进行的页面排
- 定义Java修饰符:修饰符用来定义类、方法或者变量,通常放在语句的最前端。分类主要分为2类:访问控制修饰符非访问控制修饰符访问控制修饰符可以
- 1、悲观锁悲观锁假设最坏的情况(如果果你不锁门,那么捣蛋鬼就会闯入并搞得一团糟),只有在确保其他线程不受干扰(获得正确的锁)的情况下才能执行
- Android横竖屏要解决的问题应该就两个:一。布局问题;二。重新载入问题。1.布局问题:如果不想让软件在横竖屏之间切换,最简单的办法就是在
- 本文实例为大家分享了Spring实现默认标签解析流程的具体代码,供大家参考,具体内容如下承接上文,进入parseBeanDefinition
- 1.定义每一个函数都占用一段内存单元,它们有一个起始地址,指向函数入口地址的指针称为函数指针。2.语法指向函数的指针变量的一般定义形式为:数
- 如下所示:public static void main(String[] args) throws IOException {  
- Java Resource路径首先一点很重要,Java中不存在标准的相对路径,各种相对路径取资源的方式都是基于某种规则转化为绝
- 这篇文章向大家分享了几段代码,主要是关于Thread+IO文件的加密解密,下面看看具体代码:加密启动线程package com.hz.sub
- Android中的Intent是一个非常重要的类,如果对Intent不是特别了解,可以参见《详解Android中Intent的使用方法》。如
- 看过阿里巴巴开发手册的同学应该都会对Integer临界值127有点印象。原文中写的是:【强制】所有整型包装类对象之间值的比较,全部使用 eq
- 1.问题描述使用post方法调用上级联网厂家接口,返回http状态码415,返回信息Content type ‘appl
- [LeetCode] 144. Binary Tree Preorder Traversal 二叉树的先序遍历Given a binary
- Android activity和view判断滑动 实例代码://手
- 1. 注解开发依赖注入1.1 使用@Autowired注解开启自动装配模式@Servicepublic class BookServiceI
- 本文实例为大家分享了C#实现飞行棋游戏的具体代码,供大家参考,具体内容如下游戏截图:管理类:using System;using Syste