1 兩個pdf合并成一個pdf
public static void main(String[] args) throws IOException,
DocumentException {
PdfReader reader1 = new PdfReader(“H:/abcd/PDF1.pdf”);
PdfReader reader2 = new PdfReader(“H:/abcd/PDF2.pdf”);
FileOutputStream out = new FileOutputStream("H:/abcd/PDF4.pdf");
Document document = new Document();
PdfWriter writer = PdfWriter.getInstance(document, out);
document.open();
PdfContentByte cb = writer.getDirectContent();
int totalPages = 0;
totalPages += reader1.getNumberOfPages();
totalPages += reader2.getNumberOfPages();
List<PdfReader> readers = new ArrayList<PdfReader>();
readers.add(reader1);
readers.add(reader2);
int pageOfCurrentReaderPDF = 0;
Iterator<PdfReader> iteratorPDFReader = readers.iterator();
while (iteratorPDFReader.hasNext()) {
PdfReader pdfReader = iteratorPDFReader.next();
while (pageOfCurrentReaderPDF < pdfReader.getNumberOfPages()) {
document.newPage();
pageOfCurrentReaderPDF++;
PdfImportedPage page = writer.getImportedPage(pdfReader,
pageOfCurrentReaderPDF);
cb.addTemplate(page, 0, 0);
}
pageOfCurrentReaderPDF = 0;
}
out.flush();
document.close();
out.close();
}
2 兩個PDF各自其中的一頁合并為一個PDF中的一頁(合成兩頁PDF的内容不超過一頁)
public static final String file1 = “H:/abcd/PDF1.pdf”;
public static final String file2 = “H:/abcd/PDF2.pdf”;
public static void main(String[] args) throws IOException {
combine2();
}
public static void combine2() {
try {
PDDocument _document1 = PDDocument.load(new File(file1));
PDPage _page1 = _document1.getPage(0);
PDRectangle _cropBox1 = _page1.getCropBox();
float originalHeight = _cropBox1.getHeight();
_cropBox1.setLowerLeftY(-(PDRectangle.A4.getHeight() - _cropBox1
.getHeight()));
_page1.setMediaBox(_cropBox1);
_page1.setCropBox(_cropBox1);
ByteArrayOutputStream _baos1 = new ByteArrayOutputStream();
_document1.save(_baos1);
_document1.close();
PDDocument _document2 = PDDocument.load(new File(file2));
PDPage _page2 = _document2.getPage(0);
PDRectangle _cropBox2 = _page2.getCropBox();
_cropBox2.setLowerLeftY(-(PDRectangle.A4.getHeight()
- _cropBox2.getHeight() + originalHeight + 20));
_page2.setMediaBox(_cropBox2);
_page2.setCropBox(_cropBox2);
ByteArrayOutputStream _baos2 = new ByteArrayOutputStream();
_document2.save(_baos2);
_document2.close();
PDFMergerUtility mergePdf = new PDFMergerUtility();
mergePdf.addSource(new ByteArrayInputStream(_baos1.toByteArray()));
mergePdf.addSource(new ByteArrayInputStream(_baos2.toByteArray()));
Overlay overLay = new Overlay();
overLay.setInputPDF(PDDocument.load(_baos1.toByteArray()));
overLay.setDefaultOverlayPDF(PDDocument.load(_baos2.toByteArray()));
Map<Integer, String> specificPageOverlayFile = new HashMap<Integer, String>();
PDDocument _doc = overLay.overlay(specificPageOverlayFile);
PDPageXYZDestination dest2 = new PDPageXYZDestination();
dest2.setPage(_doc.getPage(0));
dest2.setZoom(1f);
dest2.setTop(new Float(PDRectangle.A4.getHeight()).intValue());
PDActionGoTo action2 = new PDActionGoTo();
action2.setDestination(dest2);
_doc.getDocumentCatalog().setOpenAction(action2);
_doc.save("H:/abcd/PDF10.pdf");
} catch (Exception e) {
e.printStackTrace();
}
}