- package fact;
-
- import java.io.FileOutputStream;
- import java.util.ArrayList;
- import java.util.List;
-
- import com.lowagie.text.Document;
- import com.lowagie.text.pdf.PRAcroForm;
- import com.lowagie.text.pdf.PdfCopy;
- import com.lowagie.text.pdf.PdfImportedPage;
- import com.lowagie.text.pdf.PdfReader;
- import com.lowagie.text.pdf.SimpleBookmark;
-
- /**
- * Permet la concaténation de deux PDF en un.
- *
- * @author Johann Pons
- */
- public class Concatenate {
-
- public static void main(String args[]) {
- args = new String[]{"c:\\ccn.pdf", "c:\\trame.pdf", "c:\\out.pdf"};
-
- try {
- int pageOffset = 0;
- ArrayList master = new ArrayList();
- int f = 0;
- String outFile = args[args.length - 1];
- Document document = null;
- PdfCopy writer = null;
- while (f < args.length - 1) {
- PdfReader reader = new PdfReader(args[f]);
- reader.consolidateNamedDestinations();
- int n = reader.getNumberOfPages();
- List bookmarks = SimpleBookmark.getBookmark(reader);
- if (bookmarks != null) {
- if (pageOffset != 0) {
- SimpleBookmark.shiftPageNumbers(bookmarks, pageOffset, null);
- }
- master.addAll(bookmarks);
- }
- pageOffset += n;
-
- if (f == 0) {
- document = new Document(reader.getPageSizeWithRotation(1));
- writer = new PdfCopy(document, new FileOutputStream(outFile));
- document.open();
- }
- PdfImportedPage page;
- for (int i = 0; i < n;) {
- ++i;
- page = writer.getImportedPage(reader, i);
- writer.addPage(page);
- }
- PRAcroForm form = reader.getAcroForm();
- if (form != null) {
- writer.copyAcroForm(reader);
- }
- f++;
- }
- if (!master.isEmpty()) {
- writer.setOutlines(master);
- }
- document.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
package fact;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.List;
import com.lowagie.text.Document;
import com.lowagie.text.pdf.PRAcroForm;
import com.lowagie.text.pdf.PdfCopy;
import com.lowagie.text.pdf.PdfImportedPage;
import com.lowagie.text.pdf.PdfReader;
import com.lowagie.text.pdf.SimpleBookmark;
/**
* Permet la concaténation de deux PDF en un.
*
* @author Johann Pons
*/
public class Concatenate {
public static void main(String args[]) {
args = new String[]{"c:\\ccn.pdf", "c:\\trame.pdf", "c:\\out.pdf"};
try {
int pageOffset = 0;
ArrayList master = new ArrayList();
int f = 0;
String outFile = args[args.length - 1];
Document document = null;
PdfCopy writer = null;
while (f < args.length - 1) {
PdfReader reader = new PdfReader(args[f]);
reader.consolidateNamedDestinations();
int n = reader.getNumberOfPages();
List bookmarks = SimpleBookmark.getBookmark(reader);
if (bookmarks != null) {
if (pageOffset != 0) {
SimpleBookmark.shiftPageNumbers(bookmarks, pageOffset, null);
}
master.addAll(bookmarks);
}
pageOffset += n;
if (f == 0) {
document = new Document(reader.getPageSizeWithRotation(1));
writer = new PdfCopy(document, new FileOutputStream(outFile));
document.open();
}
PdfImportedPage page;
for (int i = 0; i < n;) {
++i;
page = writer.getImportedPage(reader, i);
writer.addPage(page);
}
PRAcroForm form = reader.getAcroForm();
if (form != null) {
writer.copyAcroForm(reader);
}
f++;
}
if (!master.isEmpty()) {
writer.setOutlines(master);
}
document.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}