프로그래밍 방식으로 단추를 "누르지"마십시오. 필요한 데이터를 제공하기 만하면 양식이 적용됩니다.
FillXFA 예제를 참조하십시오. 우리는이처럼 보이는 purchase_order.pdf 있습니다
![enter image description here](https://i.stack.imgur.com/mXnfR.png)
이 문서는 (더 많은 페이지 (필요한 경우)를 만드는 결과를) 더 라인 항목을 추가 할 수있는 "항목 추가"버튼이 있습니다. 이 버튼은 GUI가있는 경우에만 의미가 있지만 프로그래밍 방식으로 양식을 채울 때 푸시 할 버튼이 없습니다. 당신은 다음과 같이 데이터 (예 : data.xml)와 XML을 제공
public void manipulatePdf(String src, String dest)
throws IOException, DocumentException {
PdfReader reader = new PdfReader(src);
PdfStamper stamper = new PdfStamper(reader,
new FileOutputStream(dest));
AcroFields form = stamper.getAcroFields();
XfaForm xfa = form.getXfa();
xfa.fillXfaForm(new FileInputStream(XML));
stamper.close();
reader.close();
}
을 결과는 다음과 같습니다 : 당신이 볼 수 있듯이 purchase_order_filled.pdf
![enter image description here](https://i.stack.imgur.com/AD1EA.png)
가 여러 라인이 추가되었습니다없이 아무 버튼이나 누르세요.
중요 사항 : 하이브리드 문서가있는 것으로 확인되었습니다. 나는 당신이 그것을 순수한 XFA 형식으로 만들어야한다고 생각합니다. AcroForm 필드를 유지하면이 코드가 작동하지 않습니다.
문서를 순수한 XFA 양식으로 만들려면 어떻게해야합니까? XML에서 데이터를 채우면서 기존 AcroForm 필드를 무시할 수 있습니까? – Hans
양식 사전에서'Fields' 배열을 제거하고 페이지에서 위젯 주석을 제거하면 (양식이 있다면 방금 양식 사전을 확인한 것입니다. 놀랍게도'Fields' 배열이 포함되어 있지 않은 것으로 나타났습니다. 비어있는, 그것은 동적 인 형태에 대해 매우 이상합니다.). –
솔루션이 작동하고 있으며, 동적 테이블이 유사하고 데이터로 채워져 있습니다. –