Hi,
I'm having a problem with partialFormFlattening, which
I wonder has anyone come across. I want to leave some
fields on a pdf as editable and ones that have had
data filled into them, I want to flatten.
So I've called
stamp.setFormFlattening(true);
stamp.partialFormFlattening("ISG_RSV_TIN1");
on my stamper, but no fields are flattened. If I take
out the call to "partialFormFlattening" then all
fields are flattened as I would expect.
I've traced into the PDFStamperImpl.flatFields code
and it looks like the when the stamper tries to
retrieve the PdfDictionary it's getting null.
PdfDictionary appDic =
(PdfDictionary)PdfReader.getPdfObject(merged.get(PdfName.AP));
This does not happen when the call to
partialFormFlattening is omitted.
Any help greatly appreciated,
thanks
-patrick
P.S. Here's my whole code snippet.
package com.blah;
import java.io.File;
import java.io.FileOutputStream;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import com.lowagie.text.pdf.AcroFields;
import com.lowagie.text.pdf.PdfReader;
import com.lowagie.text.pdf.PdfStamper;
/**
* @author dk
*
* To change the template for this generated type
comment go to
* Window>Preferences>Java>Code
Generation>Code and Comments
*/
public class PDFModifier {
public static void main(String[] args) {
try {
File pdfDirectory = new File("c:/Documents and
Settings/DKenny/My Documents/compliance/pdfs from
ping/27Oct04/");
File noPrintDirectory = new File(pdfDirectory,
"noprint");
if (!noPrintDirectory.exists()) {
noPrintDirectory.mkdir();
}
String [] files = pdfDirectory.list();
System.out.println("Found " + files.length + "
files");
for (int i = 0; i < files.length; i++) {
System.out.println(files[i]);
File noPrintFile = new File(noPrintDirectory,
files[i]);
if (noPrintFile.exists()) {
System.out.println("deleting oldfile:" +
noPrintFile.delete());
}
File file = new File(pdfDirectory, files[i]);
PdfReader inputPDF = new
PdfReader(file.getAbsolutePath());
PdfStamper stamp = new PdfStamper(inputPDF,
new FileOutputStream(noPrintFile));
//stamp.partialFormFlattening("ISG_RSV_NAME1");
stamp.setFormFlattening(true);
boolean worked =
stamp.partialFormFlattening("ISG_RSV_TIN1");
if (worked) {
System.out.println("partialFormFlattening
worked");
}
else {
System.out.println("partialFormFlattening
didn't
work");
}
stamp.close();
break; // just do one for the moment.
}
}
catch (Exception e) {
System.out.println("Got a dirty big exception - " +
e.getMessage());
}
}
}
__________________________________
Do you Yahoo!?
Check out the new Yahoo! Front Page.
www.yahoo.com
-------------------------------------------------------
This SF.Net email is sponsored by:
Sybase ASE Linux Express Edition - download now for FREE
LinuxWorld Reader's Choice Award Winner for best database on Linux.
http://ads.osdn.com/?ad_id=5588&alloc_id=12065&op=click
_______________________________________________
iText-questions mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/itext-questions