Hi,
Okay, so I guess it's the annotations. I don't know how to iterate
through the annotations. Are they a part of the page? A part of the
document? Are they attached to links?
This is my code so far, which basically takes a pdf and copies it. The
part I need to add, is that part that removes the lock property, on the
digital ink/annotations.
public static void mergeMyFiles(String filesToBeMerged[], String
mergedFileLocation) {
System.out.println("Starting To Merge Files...");
System.out.println("Total Number Of Files To Be Merged..."
+filesToBeMerged.length+"\n");
try {
int pageOffset = 0;
ArrayList masterBookMarkList = new ArrayList();
int fileIndex = 0;
String outFile = mergedFileLocation;
Document document = null;
PdfCopy writer = null;
PdfReader reader = null;
for (fileIndex = 0; fileIndex < filesToBeMerged.
length; fileIndex++) {
/** * Create a reader for the file that we
are reading */
reader = new
PdfReader(filesToBeMerged[fileIndex]);
System.out.println("Reading File -"
+filesToBeMerged[fileIndex]);
/** * Replace all the local named links
with the actual destinations. */
reader.consolidateNamedDestinations();
/** * Retrieve the total number of pages
for this document */
int totalPages =
reader.getNumberOfPages();
/** * Get the list of bookmarks for the
current document * If the bookmarks are not empty, store the bookmarks *
into a master list */
System.out.println("Checking for
bookmarks...");
List bookmarks = SimpleBookmark.
getBookmark(reader);
if (bookmarks != null) {
if (pageOffset != 0)
SimpleBookmark.
shiftPageNumbers(bookmarks, pageOffset, null);
masterBookMarkList.addAll(bookmarks);
System.out.println("Bookmarks
found and storing...");
}
else{
System.out.println("No bookmarks
in this file...");
}
pageOffset += totalPages;
/** * Merging the files to the first file.
* If we are passing file1, file2 and file3, * we will merge file2 and
file3 to file1. */
if (fileIndex == 0) {
/** * Create the document object
from the reader */
document = new
Document(reader.getPageSizeWithRotation(1));
/** * Create a pdf write that
listens to this document. * Any changes to this document will be written
the file * * outFile is a location where the final merged document * will
be written to. */
System.out.println("Creating an
empty PDF...");
writer = new PdfCopy(document, new
FileOutputStream(outFile));
/** * Open this document */
document.open();
}
/** * Add the conent of the file into this
document (writer). * Loop through multiple Pages */
System.out.println("Merging File: "
+filesToBeMerged[fileIndex]);
PdfImportedPage page;
for (int currentPage = 1; currentPage <=
totalPages; currentPage++) {
page =
writer.getImportedPage(reader, currentPage);
/** THIS IS WHERE I NEED TO
REMOVE THE ANNOTATIONS
writer.addPage(page);
}
/** * This will get the documents acroform
. * This will return null if no acroform is part of the document. * *
Acroforms are PDFs that have been turned into fillable forms. */
System.out.println("Checking for
Acroforms");
PRAcroForm form = reader.getAcroForm();
if (form != null) {
writer.copyAcroForm(reader);
System.out.println("Acroforms
found and copied");
}
else {
System.out.println("Acroforms not
found for this file");
System.out.println();
}
/** * After looping through all the files,
add the master bookmarklist. * If individual PDF documents had separate
bookmarks, master bookmark * list will contain a combination of all those
bookmarks in the * merged document. */
if (!masterBookMarkList.isEmpty()) {
writer.setOutlines(
masterBookMarkList);
System.out.println("All bookmarks
combined and added");
}
else {
System.out.println("No bookmarks
to add in the new file");
}
/** * Finally Close the main document,
which will trigger the pdfcopy * to write back to the filesystem. */
document.close();
System.out.println("File has been merged
and written to-"+mergedFileLocation);
}
}
catch (Exception e) {
e.printStackTrace();
}
}------------------------------------------------------------------------------
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here
http://p.sf.net/sfu/sfd2d-msazure
_______________________________________________
iText-questions mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/itext-questions
iText(R) is a registered trademark of 1T3XT BVBA.
Many questions posted to this list can (and will) be answered with a reference
to the iText book: http://www.itextpdf.com/book/
Please check the keywords list before you ask for examples:
http://itextpdf.com/themes/keywords.php