1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| private void editPdf(Map<String, String> editInfo) throws FileNotFoundException, DocumentException, IOException {
PdfReader reader = new PdfReader(inputFilePdf);
for(int y = 1; y < reader.getNumberOfPages()+1; y++ ) {
PdfDictionary dict = reader.getPageN(y);
//PdfObject object = dict.getDirectObject(PdfName.CONTENTS);
PdfArray refs = null;
if (dict.get(PdfName.CONTENTS).isArray()) {
refs = dict.getAsArray(PdfName.CONTENTS);
} else if (dict.get(PdfName.CONTENTS).isIndirect()) {
refs = new PdfArray(dict.get(PdfName.CONTENTS));
}
for (Map.Entry<String, String> entry : editInfo.entrySet()) {
for (int i = 0; i < refs.getArrayList().size(); i++) {
PRStream stream = (PRStream) refs.getDirectObject(i);
byte[] data = PdfReader.getStreamBytes(stream);
stream.setData(new String(data).replace(entry.getKey() , entry.getValue()).getBytes());
}
}
}
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(outputFile));
stamper.close();
reader.close();
} |
Partager