2017-04-06 2 views
0

일부 데이터가있는 PDF 양식을 작성해야합니다. 이 양식에는 "추가"버튼이있는 몇 개의 표가 포함되어 있으며이 표에 입력이있는 새 행이 추가됩니다 (예 : "FOREIGN PATENT DOCUMENTS"). iText를 사용하여 코드에서이 버튼을 "클릭"하고, 필요한 행을 추가하고, 입력 이름을 가져 와서 채워야합니다. iText로 어떻게 할 수 있습니까? 아무도 나에게 코드 예제를 제공 할 수 있습니까? 형태 https://drive.google.com/open?id=0BwtWU1543EbTQ3A3b2dZcW9qYk0iText를 사용하여 PDF 양식의 버튼을 클릭하는 방법은 무엇입니까?

이 파일은 미리 정의 된 내가 그것을 다시 생성 할 수와

내 PDF 파일.

답변

2

프로그래밍 방식으로 단추를 "누르지"마십시오. 필요한 데이터를 제공하기 만하면 양식이 적용됩니다.

FillXFA 예제를 참조하십시오. 우리는이처럼 보이는 purchase_order.pdf 있습니다

enter image description here

이 문서는 (더 많은 페이지 (필요한 경우)를 만드는 결과를) 더 라인 항목을 추가 할 수있는 "항목 추가"버튼이 있습니다. 이 버튼은 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

가 여러 라인이 추가되었습니다없이 아무 버튼이나 누르세요.

중요 사항 : 하이브리드 문서가있는 것으로 확인되었습니다. 나는 당신이 그것을 순수한 XFA 형식으로 만들어야한다고 생각합니다. AcroForm 필드를 유지하면이 코드가 작동하지 않습니다.

+0

문서를 순수한 XFA 양식으로 만들려면 어떻게해야합니까? XML에서 데이터를 채우면서 기존 AcroForm 필드를 무시할 수 있습니까? – Hans

+1

양식 사전에서'Fields' 배열을 제거하고 페이지에서 위젯 주석을 제거하면 (양식이 있다면 방금 양식 사전을 확인한 것입니다. 놀랍게도'Fields' 배열이 포함되어 있지 않은 것으로 나타났습니다. 비어있는, 그것은 동적 인 형태에 대해 매우 이상합니다.). –

+0

솔루션이 작동하고 있으며, 동적 테이블이 유사하고 데이터로 채워져 있습니다. –