网站首页 > java教程 正文
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-10-09 Java 合并、拆分PDF文档(javapdf合并成一个pdf)
- 2024-10-09 Java 转换TIFF到PDF(java转pdf文件)
- 2024-10-09 Word处理控件Aspose.Words功能演示:使用 Java 将 RTF 转换为 PDF
- 2024-10-09 惊呆了了,居然发现了这本Java从小白到大牛的高清版PDF
- 2024-10-09 「Java」PDF文档格式转换之PDF转tiff
- 2024-10-09 Java 拆分PDF页面(java拆分word)
- 2024-10-09 使用Java 将PPT转换为PDF、XPS等格式
- 2024-10-09 Spire.PDF for Java v2.9.1上线!支持多页PDF转换为单个SVG
- 2024-10-09 java操作pdf之iText(java pdfwriter)
- 2024-10-09 SpringBoot集成文件 - 如何集成itextpdf导出PDF?itext的变迁?
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)