Поле цифровой подписи не настраивается в шаблоне PDF с помощью iTextpdf 5.5.13 - PullRequest
0 голосов
/ 07 марта 2019

Я хочу установить некоторые поля из поля, созданного с помощью Adobe Acrobat. Я хочу, чтобы окончательно сгенерированный PDF-файл должен содержать компонент цифровой подписи таким, какой он есть.

Я хочу добиться этого, используя Java и itextpdf 5.5.13 jar.

Вот мой код:

     //Getting PDF Reader
     PdfReader reader = null;
     //getting PDF Stamper
     PdfStamper stamper = null;
     //FacesContext context = FacesContext.getCurrentInstance();
     try {
            String src = "D:\\workspace2\\runtime-EclipseApplication\\Project\\WebContent\\resources\\" +
                    "pdf_form_template\\invoice.pdf";

            reader = new PdfReader(src);
            stamper = new PdfStamper(reader, new FileOutputStream(pdfPath));

            //Query and change fields in existing document by method calls.
            AcroFields form = stamper.getAcroFields();

            form.setField("contactNumber",phone_no);
            form.setField("name",name);
            form.setField("invoiceNumber",invoice_no);
            form.setField("GSTIN",gstin_no);
            form.setField("GSTIN_2",gstin_no);
            form.setField("Date","06/March/2019");
            form.setField("Ms",name);
            form.setField("Address 1",address);
            form.setField("Pin",pin_no);
            form.setField("State Code",state_code);
            form.setField("SNoRow1","1.");
            form.setField("Amount in Words",amount_in_words);
            form.setField("DESCRIPTIONRow1",desc);
            form.setField("HSN CODERow1",HSN_code);
            form.setField("AMOUNTTaxable Value", texable_value);
            form.setField("AMOUNTCGST 18", cgst_value);
            form.setField("AMOUNTSGST 9", sgst_value);
            form.setField("AMOUNTIGST 9", igst_value);
            form.setField("AMOUNTGRAND TOTAL", grand_total);

          //digital signature field in form template
            form.setField("digitalSignature","");

} catch (Exception e) {
    // TODO: handle exception
    e.printStackTrace();
}finally {
    if (stamper != null) {

        try {
            stamper.setFormFlattening(true);
            stamper.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (DocumentException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
    if (reader != null) {
        reader.close();
    }
}

Выходной pdf, который я получаю, содержит все установленные поля, кроме цифровой подписи.

1 Ответ

0 голосов
/ 07 марта 2019

setFormFlattens (true) - причина, по которой я наконец получаю сжатый pdf.Использование partalFormFlattens является правильным способом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...