Using PDF portfolio, you can put multiple types of files (such as Word & Excel files, images and PowerPoint presentations) together into a master PDF file. The files in a PDF Portfolio can retain their individual identities, so you can open, read, edit, and format each file independently of the other files. In this article, I am going to introduce how to work with PDF portfolio, especially create PDF portfolio and read/extract files from PDF portfolio programmatically in Java.
Add Dependencies
In order to create and read PDF portfolio, I use Free Spire.PDF for Java library. There are two ways to include Free Spire.PDF for Java in your Java project:
For maven projects:
Specify the following dependencies in your project’s pom.xml file:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <repositories> <repository> <id>com.e-iceblue</id> <name>e-iceblue</name> <url>http://repo.e-iceblue.com/nexus/content/groups/public/</url> </repository> </repositories> <dependencies> <dependency> <groupId> e-iceblue </groupId> <artifactId>spire.pdf.free</artifactId> <version>4.4.1</version> </dependency> </dependencies> |
The latest version of Free Spire.PDF for Java is 4.4.1 (at the time of writing this article).
For non-maven projects:
Download Free Spire.PDF for Java pack from here: Download- Free Spire.PDF for Java, extract the zip file, then add Spire.Pdf.jar in the lib folder into your project as a dependency.
Create PDF Portfolio
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | import com.spire.pdf.FileFormat;import com.spire.pdf.PdfDocument;import java.io.IOException;public class CreatePortfolio { public static void main(String []args) throws IOException { String[] files = new String[] { "sample.pdf", "sample.docx", "sample.xlsx","sample.pptx","image.jpg" }; //Create a PdfDocument instance PdfDocument pdf = new PdfDocument(); //Create a PDF portfolio and add files to it for (int i = 0; i < files.length; i++) { pdf.getCollection().addFile(files[i]); } //Save the result file pdf.saveToFile("Portfolio.pdf", FileFormat.PDF); pdf.dispose(); }} |
Output:

Read/Extract Files from PDF Portfolio
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | import com.spire.pdf.PdfDocument;import com.spire.pdf.attachments.PdfAttachment;import java.io.*;public class ReadPortfolio { public static void main(String []args) throws IOException { //Create a PdfDocument instance PdfDocument pdf = new PdfDocument(); //Load the PDF file pdf.loadFromFile("Portfolio.pdf"); //Loop through the attachments in the file for(PdfAttachment attachment : (Iterable<PdfAttachment>)pdf.getAttachments()){ //Extract files String fileName = attachment.getFileName(); OutputStream fos = new FileOutputStream("extract/" + fileName); fos.write(attachment.getData()); } pdf.dispose(); }} |

Comments
Post a Comment