Modifying a specific field in a Adobe editable PDF using PDFStamper(Append mode) is doubling file size

36 Views Asked by At

As per requirement, I have an editable PDF (created from XDP and XML using Adobe) and I want to edit a specific binding field using itext5. Was able to achieve this using pdfstamper in append mode. But it is doubling the PDF file size. Which seems to be incorrect. eg 5MB --> 9MB, 2MB --> 4MB

Could anyone suggest why this is occurring? Is anything missing in the below code?

CODE:

public static byte[] writeFormFieldValue(byte[] uploadedBytes, String fieldName, String Value)
        throws Exception {
    if (uploadedBytes == null) {
        //throw new CertificateCustomException("Inavalid input parameres to parse certificate pdf");
    }
    // ByteArrayOutputStream bos = new ByteArrayOutputStream();\
    byte[] outBytes = null;
    String waterMarkedPDFName = "watermarkedPDF_" + System.currentTimeMillis();

    try {
        FileOutputStream bos = new FileOutputStream(waterMarkedPDFName);
        PdfReader reader = new PdfReader(uploadedBytes);
        PdfStamper stamper = new PdfStamper(reader, bos,  '\0',false);
        stamper.getAcroFields().setField(fieldName, Value);
        stamper.close();
        outBytes = WatermarkUtil.getBytesFromFile(new File(waterMarkedPDFName));
        
    } catch (Exception e) {

    } finally {
        try {
            File deleteFile = new File(waterMarkedPDFName);
            if (deleteFile.exists())
                deleteFile.delete();
        } catch (Exception se) {
        }
    }

    return outBytes;
    // return bos.toByteArray();

}
0

There are 0 best solutions below