有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java添加PDFStamper覆盖会导致XFA预填充字段消失

我正在使用的SRC_PDF先前由使用以下代码的先前方法填充:

    XfaForm xfa = form.getXfa(); 
    xfa.fillXfaForm(new FileInputStream(XML));
    stamper.close();
    reader.close();

现在我想在填充文档的第二页上创建一个图像覆盖。 通过使用PDFStamper(即使使用了append),我现在丢失了所有填充的字段,但确实得到了第2页上的图像覆盖。有人知道如何在预先填充的XFA PDF form?上进行图像覆盖吗

    package example.pdf;

    import java.io.FileOutputStream;
    import org.junit.Test;

    import com.itextpdf.text.Image;
    import com.itextpdf.text.pdf.PdfContentByte;
    import com.itextpdf.text.pdf.PdfReader;
    import com.itextpdf.text.pdf.PdfStamper;

    public class SignaturePDFTest {
        public static final String SRC_PDF = "target/XFA_Form_filled.pdf";
        public static final String DEST_PDF = "target/XFA_Form_withImageOverlay.pdf";
        public static final String OVERLAY_GRAPHIC = "src/test/imageOverlay.png";


    @Test
    public void testPdfStamp() throws Exception
    {
        PdfReader pdfReader = new PdfReader(SRC_PDF);
        PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileOutputStream(DEST_PDF), '\0', true);
        Image image = Image.getInstance(OVERLAY_GRAPHIC);
        image.scaleToFit(200, 170);

        for (int i=1; i<=pdfReader.getNumberOfPages(); i++)
        {
            PdfContentByte content = pdfStamper.getOverContent(i);
            image.setAbsolutePosition(450f, 450f);
            if (i==2) content.addImage(image);
        }   
        pdfStamper.close();
        pdfReader.close();
    }
}

运行pdfStamper覆盖后,我丢失了以前调用中填充的字段:xfa.fillXfaForm(new FileInputStream(XML));当PDF表单具有XFA fields时,是否有特定的方法将图像放置在特定页面上


共 (0) 个答案