PDF合并与分割

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 savepaths = new 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();

}

}

}

相关文档
最新文档