Concatenate pdf files using command argument

In this program we are going to concatenate pdf files
into a destination pdf files through java program. The all data of files
are concatenated into
destination pdf. You can concentrate two or more file into a single file.
In this example we need iText.jar file, without this jar file we
never compile our application . The package we need to import are java.io.
FileOutputStream,java.util.ArrayList,java.util.List,com.lowagie.text.Document,com.lowagie.text.pdf.PRAcroForm,
com.lowagie.text.pdf.PdfCopy,com.lowagie.text.pdf.PdfImportedPage,com.lowagie.text.pdf.PdfReader,com.lowagie.
text.pdf.SimpleBookmark.
The java.io.FileOutputStream class is used to create
file.The java.util.ArrayList and java.util.List classes are used to
create object of an array list and a list. The com.lowagie.text.Document
class is used to create a document object, com.
lowagie.text.pdf.PRAcroForm class extends DpfDictionary. The PRAcroForm
class captures an AcroForm on input.
AcroForm is a collection of fields that is used for gathering
information interactively from the user. com.
lowagie.text.pdf.PdfCopy class is used to make copies of
PDF documents and It extends PdfWriter.The com.lowagie.text.pdf.
PdfImportedPage class is used to import an page. The PdfImportedPage class
extends PdfTemplate. The com.lowagie.text.pdf.PdfReader class is used to
read pdf from specified file. PdfReader class throws an IOException
and extends Object class. The class
com.lowagie.text.pdf.SimpleBookmark is to create an instance of
SimpleBookmark.
To make the program for concatenate pdf files firstly we will make a
class Concanenate. Remember the name of the file should be such that, if
any other person sees the example then just by seeing the name of the program he
can understand what the program is going to do without seeing the code.
The steps to execute this program:
- Makes minimum two pdf file.
- Download the iTex.jar
file .
- Copy iText.jar into lib directory and Set the class.
- Make or Download the source code of program.
- Put the source code and pdf files into same
directory.
- Compile the source code.
- Pass the name of two (or more files) and and
destination pdf file name.
- Press enter to execute your program.
Inside this class declare the main method which must throws Exception.
After that follow the simple steps find the version:
- First check the number of arguments passed in
command line. If it is less than three then print "arguments:
file1 [file2 ...] destfile" else proceed next.
- Create an object of ArrayList and store
the destination file name an String object outFile.
- Initialize document and PdfWriter null .
- Start a while loop upto destination file name.
- Read the file from command argument and find
number of pages.
- Store the file into an object boomarks
- And add
- close the document
The code of the program is given below:
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;
public class Concatenate {
public static void main(String args[])throws Exception {
if (args.length < 2) {
System.err.println("arguments: file1 [file2 ...] destfile");
}
else {
System.out.println("PdfCopy example");
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();
}
}
}
|
Download file1 example.
Download file2 example.
The output of the program is given below:

Download this example.

|