com.lowagie.text.pdf
public static class PdfAnnotation.PdfImportedLink extends Object
String[] files = new String[] {"input1.pdf", "input2.pdf"}; String outputFile = "output.pdf"; int firstPage=1; Document document = new Document(); PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(outputFile)); document.setPageSize(PageSize.A4); float W = PageSize.A4.getWidth() / 2; float H = PageSize.A4.getHeight() / 2; document.open(); PdfContentByte cb = writer.getDirectContent(); for (int i = 0; i < files.length; i++) { PdfReader currentReader = new PdfReader(files[i]); currentReader.consolidateNamedDestinations(); for (int page = 1; page <= currentReader.getNumberOfPages(); page++) { PdfImportedPage importedPage = writer.getImportedPage(currentReader, page); float a = 0.5f; float e = (page % 2 == 0) ? W : 0; float f = (page % 4 == 1 || page % 4 == 2) ? H : 0; ArrayList links = currentReader.getLinks(page); cb.addTemplate(importedPage, a, 0, 0, a, e, f); for (int j = 0; j < links.size(); j++) { PdfAnnotation.PdfImportedLink link = (PdfAnnotation.PdfImportedLink)links.get(j); if (link.isInternal()) { int dPage = link.getDestinationPage(); int newDestPage = (dPage-1)/4 + firstPage; float ee = (dPage % 2 == 0) ? W : 0; float ff = (dPage % 4 == 1 || dPage % 4 == 2) ? H : 0; link.setDestinationPage(newDestPage); link.transformDestination(a, 0, 0, a, ee, ff); } link.transformRect(a, 0, 0, a, e, f); writer.addAnnotation(link.createAnnotation(writer)); } if (page % 4 == 0) document.newPage(); } if (i < files.length - 1) document.newPage(); firstPage += (currentReader.getNumberOfPages()+3)/4; } document.close();
Field Summary | |
---|---|
PdfArray | destination |
float | llx |
float | lly |
int | newPage |
HashMap | parameters |
float | urx |
float | ury |
Constructor Summary | |
---|---|
PdfImportedLink(PdfDictionary annotation) |
Method Summary | |
---|---|
PdfAnnotation | createAnnotation(PdfWriter writer) |
int | getDestinationPage() |
boolean | isInternal() |
void | setDestinationPage(int newPage) |
String | toString()
Returns a String representation of the link. |
void | transformDestination(float a, float b, float c, float d, float e, float f) |
void | transformRect(float a, float b, float c, float d, float e, float f) |
Returns: a String representation of the imported link
Since: 2.1.6