网站首页 > 精选教程 正文
PDF文件包(Portfolio)的作用类似于zip压缩文件格式,可以将Word,Excel,PDF,PowerPoint等多种文档格式的文件或文件夹添加到其中,方便分类储存。本文将通过调用Java代码的方式对其进行相关操作,包括:创建PDF文件包(Portfolio)并添加文件或文件夹、检测PDF文档是否为PDF文件包(Portfolio)、提取PDF文件包(Portfolio)中的文件。
使用工具:Spire.PDF for Java(可在E-iceblue中文官网上获取)
代码运行环境:JDK 1.8.0、Intellij IDEA 2019
Jar包导入:创建好运行环境后,需将工具里的Jar包导入IDEA。导入方式有两种:其一、在E-iceblue中文官网上获取产品包后,找到lib文件夹里的Spire.Pdf.jar,接着手动导入即可;其二、不用下载产品包,直接在IDEA中创建Maven项目,然后在pom.xml中键入以下代码,最后点击“Import Change”即可。
<repositories>
<repository>
<id>com.e-iceblue</id>
<url>http://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId> e-iceblue </groupId>
<artifactId>spire.pdf</artifactId>
<version>4.4.5</version>
</dependency>
</dependencies>
代码示例一 创建PDF文件包(Portfolio)并添加文件
import com.spire.pdf.FileFormat;
import com.spire.pdf.PdfDocument;
public class CreatePDFPortfolioWithFiles {
public static void main(String[] args) {
String[] files = new String[] { "C:\\Users\\Test1\\Desktop\\Sample.docx", "C:\\Users\\Test1\\Desktop\\Sample.xlsx",
"C:\\Users\\Test1\\Desktop\\Sample.pdf","C:\\Users\\Test1\\Desktop\\Sample.pptx","C:\\Users\\Test1\\Desktop\\logo.png" };
//创建PdfDocument实例
PdfDocument pdf = new PdfDocument();
for (int i = 0; i < files.length; i++)
{
//创建PDF文件包并添加文件
pdf.getCollection().addFile(files[i]);
}
//保存文档
pdf.saveToFile("output/PortfolioWithFiles.pdf", FileFormat.PDF);
pdf.dispose();
}
}
添加效果
代码示例二 创建PDF文件包(Portfolio)并添加文件夹
import com.spire.pdf.FileFormat;
import com.spire.pdf.PdfDocument;
import com.spire.pdf.collections.PdfFolder;
public class CreatePDFPortfolioWithFolders {
public static void main(String[] args) {
String[] files = new String[] { "C:\\Users\\Test1\\Desktop\\Sample.docx", "C:\\Users\\Test1\\Desktop\\Sample.xlsx",
"C:\\Users\\Test1\\Desktop\\Sample.pdf","C:\\Users\\Test1\\Desktop\\Sample.pptx","C:\\Users\\Test1\\Desktop\\logo.png"};
//创建PdfDocument实例
PdfDocument pdf = new PdfDocument();
for (int i = 0; i < files.length; i++)
{
//创建PDF文件包并添加文件夹
PdfFolder folder = pdf.getCollection().getFolders().createSubfolder("folder" + i);
folder.addFile(files[i]);
}
//保存文档
pdf.saveToFile("output/PortfolioWithFolders.pdf", FileFormat.PDF);
pdf.dispose();
}
}
添加效果
代码示例三 检测PDF文档是否为PDF文件包(Portfolio)
import com.spire.pdf.PdfDocument;
public class DetectPortfolio {
public static void main(String[] args) {
//创建PdfDocument实例
PdfDocument doc = new PdfDocument();
//加载PDF文档
doc.loadFromFile("PortfolioWithFiles.pdf");
//判断该PDF是否为PDF文件包
boolean value = doc.isPortfolio();
if (value)
{
System.out.println("此文档是PDF文件包");
}
else
{
System.out.println("此文档不是PDF文件包");
}
}
}
检测结果
代码示例四 提取PDF文件包(Portfolio)中的文件
import com.spire.pdf.PdfDocument;
import com.spire.pdf.attachments.PdfAttachment;
import java.io.*;
public class ExtractFilesFromPDFPortfolio {
public static void main(String[] args) throws IOException {
//创建PdfDocument实例
PdfDocument pdf = new PdfDocument();
//加载PDF文档
pdf.loadFromFile("PortfolioWithFiles.pdf");
//遍历文档中的附件
for(PdfAttachment attachment : (Iterable<PdfAttachment>)pdf.getAttachments()){
//提取附件
String fileName = attachment.getFileName();
OutputStream fos = new FileOutputStream("extract/" + fileName);
fos.write(attachment.getData());
}
pdf.dispose();
}
}
提取效果
猜你喜欢
- 2024-11-22 阿里巴巴Java性能调优实战:Stream如何提高遍历集合效率?
- 2024-11-22 java实现二叉树的Node节点定义手撕8种遍历(一遍过)
- 2024-11-22 JAVA开发常用到的Map遍历
- 2024-11-22 java使用ByteBuffer并进行多文件合并和拆分
- 2024-11-22 JNI:本地代码调用Java代码
- 2024-11-22 Mysql溯源-任意文件读取??
- 2024-11-22 Java--通过Properties类读取属性文件
- 2024-11-22 JAVA获取字符串内的括号对(支持多层级)
- 2024-11-22 Java遍历一个 List 有哪些方式?每种的实现原理以及哪种最高效?
- 2024-11-22 Java面试题之二叉树的三种遍历
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)