package com.zsd.tool;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import org.apache.pdfbox.exceptions.COSVisitorException;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.util.PDFMergerUtility;
/**
* PDF 和PDF 合併
* @author admini
*
*/
public class MergeFile {
public static void main(String[] args){
// TODO Auto-generated method stub
try {
PDFMergerUtility mergePdf = new PDFMergerUtility();
String test = "E:/hisProPdfPath/test";
String folder1 = "E:/hisProPdfPath/bb";
String destinationFileName = "mergedTest.pdf";
File _folder = new File(test);
String[] filesInFolder = _folder.list();
List<InputStream> sourcesList = new ArrayList<InputStream>();
for(int i = 0; i < filesInFolder.length; i++) {
File file = new File(test + File.separator + filesInFolder[i]);
InputStream is = new FileInputStream(file);
//對PDF文件進行判斷,該PDF文件是否能夠打開
//因爲有些PDF文件是損壞的、或者設置了密碼之類的
PDDocument destination = PDDocument.load(file);
PDDocument source = PDDocument.load(file);
if(destination.isEncrypted())
throw new IOException("Error: destination PDF is encrypted, can't append encrypted PDF documents.");
if(source.isEncrypted())
throw new IOException("Error: source PDF is encrypted, can't append encrypted PDF documents.");
System.out.println(is.read());
//把文件添加到List中
sourcesList.add(is);
//mergePdf.addSource(is);
}
//PDF 合併
mergePdf.addSources(sourcesList);
mergePdf.setDestinationFileName(folder1 + File.separator + destinationFileName);
mergePdf.mergeDocuments();
System.out.print("done");
} catch (COSVisitorException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
PDF合併PDF
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.