计算机系统应用教程网站

网站首页 > 技术文章 正文

Java 创建、检测和提取PDF文件包(Portfolio)

btikc 2024-10-23 09:09:47 技术文章 6 ℃ 0 评论

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();
    }
}

提取效果

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表