2011-01-05 2 views
8

우리는 iText를 사용하여 여러 문서의 양식 필드를 자동으로 채운 다음 해당 문서를 하나의 PDF로 연결합니다.PDF를 병합하고 Acrobat Reader의 확장 기능을 보존합니다.

Adobe는 Acrobat Reader 사용자가 양식 필드가 변경된 PDF를 저장할 수 있도록 Acrobat Reader에서 기능 확장 옵션을 도입했습니다.

이것은 iText가 해결할 수있는 독점 Adobe 기능입니다.

추가 모드에서 PdfStamper 클래스를 사용하여 특정 문서에 대한 작업을 수행 할 수있었습니다. PDF에는 양식 필드가 있으므로 PdfCopyFields 클래스를 사용하여 연결을 수행합니다. PdfCopyFields에는 추가 모드가 없습니다.

iText (모든 버전)가있는 기존 PDF에 PDF를 추가하는 다른 방법이 있습니까?

답변

5

PdfCopyFields를 수정하여 추가 모드로 저장할 수있을만큼 충분히 알고 있어야합니다.

기능을 복제하여 PdfStore를 (자신의 클래스 또는 다른 방법으로) 최상위 클래스, 하위 클래스 PdfCopyFields 또는 PdfCopyFields를 직접 수정할 수 있습니다.

큰 걸림돌 블록 PDF의 이름이 같은 모든 필드는 같은 값을 공유합니다. 결과 PDF에 동일한 양식의 사본이 두 개있는 경우 동일한 데이터에 대한 두 가지보기가 있습니다.

다른 형태 일지라도 이름 충돌이 발생하면 (여기에 '도시'는 현재 주소의 일부일 수 있지만 그곳에는 태어난 도시 일 수 있음) 함께 충돌 할 것입니다. 같은 가치.

모든 네이밍 충돌이 고의적이 될 수있는 포괄적 인 시스템을 사용하고 있다면 문제가 발생합니다. "FirstName"이 항상 같은 사람을 참조하고 변경하는 경우 문제의 모든 양식에서 값을 변경해야합니다. 그렇지 않다면 PdfStamper의 평탄화 기능이 인기있는 이유입니다.

대안은 이러한 충돌을 피하기 위해 "양식을 함께 붙이기 전에 모든 필드 이름 바꾸기"가됩니다.

종합 시스템을 사용하는 경우에도 병합 및 충돌을 찾는 양식을 검토하는 작은 도구를 준비하는 것이 좋습니다. 어쩌면 일부 테스트 데이터에 값과 함께 나열 할 수 있습니다. "Fly : House, Common"대 "Fly : Southwest Airlines"라인을 따라 뭔가를 잡을 수 있습니다.

아마 그 특별한 예가 아니 겠지만 누가 알겠습니까? ;)

+0

감사 마크. 필드 이름 충돌 문제에 대해서는 첨부 된 문서의 수를 기반으로 모든 필드에 접미사를 추가하기 만하면됩니다. 그것은 우리를 위해 일합니다. –

관련 문제