拆分PDF


pdf按照指定页数拆分

package org.example;

import org.apache.pdfbox.multipdf.Splitter;
import org.apache.pdfbox.pdmodel.PDDocument;

import java.io.File;
import java.io.IOException;
import java.util.List;

public class PdfSplitter {        
    public static void main(String[] args) {        
        String sourceFile = "/Users/shicong/work/java/test/test/file/1.pdf";
        String outputDirectory = "/Users/shicong/work/java/test/test/file/output/";

        try {            
            PDDocument document = PDDocument.load(new File(sourceFile));
            Splitter splitter = new Splitter();
            splitter.setStartPage(1);
            splitter.setEndPage(10);
            //            splitter.setEndPage(document.getNumberOfPages());            
            //任意拆几个            
            List<PDDocument> list = splitter.split(document);
            for (int i = 0; i < 10; i+=2) {                
                PDDocument part = list.get(i);
                part.addPage(list.get(i+1).getPage(0));
                String fileName = outputDirectory + "part" + i + ".pdf";
                part.save(fileName);
            }            
            //拆一页一页            
            /*int i = 1;            
            for (PDDocument part : splitter.split(document)) {                
                String fileName = outputDirectory + "part" + i + ".pdf";                
                part.save(fileName);                
                System.out.println("Split PDF saved: " + fileName);                
                i++;            
            }*/            
            document.close();
        } catch (IOException e) {            
            e.printStackTrace();
        }    
    }
}

  目录