我使用的SRC_PDF
之前使用以下代码填充了之前的方法:
XfaForm xfa = form.getXfa();
xfa.fillXfaForm(new FileInputStream(XML));
stamper.close();
reader.close();
现在,我想在填充文档的第二页上创建图像叠加层。
通过使用PDFStamper
(即使使用追加),我现在丢失了所有填充的字段,但确实在第2页上获得了图像叠加。有人想出如何在预先填充的{{1 }}
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
当PDF表单具有{{1}时,是否有特定的方法将图像放在特定页面上}?