PDF合并与分割
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
package com.wizrole.pdfMerge.util;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.pdf.PdfCopy;
import com.lowagie.text.pdf.PdfImportedPage;
import com.lowagie.text.pdf.PdfReader;
public class pdfOperate{
private static final int N = 3;
public static void main(String[] args) {
String[] files = { "E:\\1.pdf", "E:\\2.pdf"};
String savepath = "E:\\7.pdf";
mergePdfFiles(files, savepath);
//partitionPdfFile("E:\\1.pdf");
}
/**
* 合并pdf
*
* @param files
* @param savepath
*/
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
*
* @param filepath
*/
public static void partitionPdfFile(String filepath) {
Document document = null;
PdfCopy copy = null;
try {
PdfReader reader = new PdfReader(filepath);
int n = reader.getNumberOfPages();
if (n < N) {
System.out.println("The document does not have " + N
+ " pages to partition !");
return;
}
int size = n / N;
String staticpath = filepath.substring(0, filepath
.lastIndexOf("\\") + 1);
String savepath = null;
ArrayList
for (int i = 1; i <= N; i++) {
if (i < 10) {
savepath = filepath.substring(
stIndexOf("\\") + 1,
filepath.length() - 4);
savepath = staticpath + savepath + "0" + i + ".pdf";
savepaths.add(savepath);
} else {
savepath = filepath.substring(
stIndexOf("\\") + 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();
}
}
}