一、多个PDF合并操作
//多个PDF合并成一个PDF
public static void mergePdfFiles(String[] files, String savepath) {
try {
Document document = new Document(new PdfReader(files[0])
.getPageSize(1));
PdfCopy copy = new PdfCopy(document, new FileOutputStream(savepath));
document.open();
for (int i = 0; i < files.length; i++) {
PdfReader reader = new PdfReader(files[i]);
int n = reader.getNumberOfPages();
for (int j = 1; j <= n; j++) {
document.newPage();
PdfImportedPage page = copy.getImportedPage(reader, j);
copy.addPage(page);
}
}
document.close();
} catch (IOException e) {
e.printStackTrace();
} catch (DocumentException e) {
e.printStackTrace();
}
}
二、一个PDF文件切割成多个PDF文件
//将一个PDF切割成多个PDF 参数N是需要切割的PDF个数
public static void cuttingPdfFile(String filepath) {
Document document = null;
PdfCopy copy = null;
try {
PdfReader reader = new PdfReader(filepath);
int n = reader.getNumberOfPages();
if (n < N) {
System.out.println("PDF文件页数小于要切割的PDF数量 !");
return;
}
int size = n / N;
String staticpath = filepath.substring(0, filepath
.lastIndexOf("\\") + 1);
String savepath = null;
ArrayList<String> savepaths = new ArrayList<String>();
for (int i = 1; i <= N; i++) {
if (i < 10) {
savepath = filepath.substring(
filepath.lastIndexOf("\\") + 1,
filepath.length() - 4);
savepath = staticpath + savepath + "0" + i + ".pdf";
savepaths.add(savepath);
} else {
savepath = filepath.substring(
filepath.lastIndexOf("\\") + 1,
filepath.length() - 4);
savepath = staticpath + savepath + i + ".pdf";
savepaths.add(savepath);
}
}
for (int i = 0; i < N - 1; i++) {
document = new Document(reader.getPageSize(1));
copy = new PdfCopy(document, new FileOutputStream(savepaths
.get(i)));
document.open();
for (int j = size * i + 1; j <= size * (i + 1); j++) {
document.newPage();
PdfImportedPage page = copy.getImportedPage(reader, j);
copy.addPage(page);
}
document.close();
}
document = new Document(reader.getPageSize(1));
copy = new PdfCopy(document, new FileOutputStream(savepaths
.get(N - 1)));
document.open();
for (int j = size * (N - 1) + 1; j <= n; j++) {
document.newPage();
PdfImportedPage page = copy.getImportedPage(reader, j);
copy.addPage(page);
}
document.close();
} catch (IOException e) {
e.printStackTrace();
} catch (DocumentException e) {
e.printStackTrace();
}
}
例子中用到的jar
链接:https://pan.baidu.com/s/195isFC2omaSbjkL0LrSfVg 提取码:jfn8