2010-08-09 8 views
4

PDF로 변환되는 보고서가 있습니다. 이러한 보고서 중 일부는 우리가 추적하지 못하기 때문에 누락 된 정보가 있습니다. 필자는 보고서의 셸로 다른 PDF를 만들고 입력 필드 컨트롤을 배치했습니다. 사용자가 인쇄 할 필요없이 공백의 필드에 정보를 입력 할 수 있도록 셸 PDF를 변환 된 PDF에 적용하는 방법이 있는지 알고 싶습니다. 필자는 PDF 파일을 셸 PDF에 레이어으로 적용하여 Adobe Acrobat Pro 9.3을 통해 수동으로이 작업을 수행했습니다. 나는 레이어들과 관련하여 iTextSharp를 많이 파고 들었다. 그러나 나는 여전히 효과가있는 것을 발견하지 못했다.iTextSharp는 기존 PDF를 다른 PDF에 레이어로 추가합니다.

고맙습니다!

+0

iTextSharp를 사용하면 두 개의 PDF 페이지를 함께 레이어하는 대신 텍스트 정보를 '변환 된'PDF에 '그리는'방법은 무엇입니까? –

답변

2

1) 레이어는 필드에서 작동하지 않습니다. PDF 레이어는 페이지 내용의 일부입니다. 양식 필드는 모든 주석과 마찬가지로 페이지 위에 띄웁니다.

2) 그렇다면 Acrobat/Reader JavaScript를 사용하여 양식 필드를 숨기거나 표시 할 수 있습니다.

var fld = this.getField("fieldName"); 
fld.hidden = false; 

당신이 PDF에 JS를 추가 할 수 있습니다 꽤 많은 다른 장소가 같습니다 "문서"개체 "는이"필드 및 페이지 엔트리 포인트, 그래서 주어진 필드를 보여주기 위해, 그것은 그냥 보통입니다. 다양한 필드 이벤트, 페이지 이벤트 및 문서 이벤트. 레이어의 액션을 일부 javaScript로 설정할 수도 있습니다. 너는 북마크의 액션을 자바 스크립트로 설정할 수있다.

PDF 기술 용어에서는 레이어를 "옵션 콘텐츠 그룹"(OCG)이라고합니다.

// layer implements PdfOCG 
PdfLayer layer = new PdfLayer("MyLayer", writer); 

PdfContentByte cb = getAContentByteFromSomewhere(); 

cb.beginLayer(layer); // takes PDFOCG object 

/* draw stuff to be part of that layer */ 

cb.endLayer(); 

에 "액션에서 iText를, 제 2 판을"해당 iText를 사이트에 대한 예제의 숫자가 있습니다 (I : 당신이 정말 레이어를 만들려면 경우 이런 식으로 뭔가를 갈 것 같은, 그것은 본다 돈을받지 않으면, 저자는 친구입니다.) The aforementioned examples can be found here.

다음과 같이 반복됩니다. 필드는 OCG (레이어)의 일부가 될 수 없습니다. 그러나 스크립트는 그대로 작동 할 수 있습니다.

관련 문제