2014-10-19 2 views
0

양식 필드가있는 두 PDF 파일 (버전 7)을 병합하려면 itextsharp를 사용하려고합니다. 코드를 실행할 때 다음과 같은 오류 메시지가 나타납니다. "iref 스트림을 처리 할 수 ​​없습니다. 현재 PDFsharp가 Acrobat 6에서 도입 된이 PDF 기능을 처리 할 수 ​​없습니다." 나는 다른 방법을 시도했지만 마지막에 내가 PDF 파일을 가지고 대신 원본 파일의 내용에, 나는 다음과 같은 정보를 가진 파일을 가지고 :itextsharp 병합 형식의 PDF 파일

 Please wait... If this message is not eventually replaced by the proper contents of the document, your PDF viewer may not be able to 
display this type of document. You can upgrade to the latest version 
of Adobe Reader for Windows®, Mac, or Linux® by visiting 
http://www.adobe.com/go/reader_download. For more assistance with 
Adobe Reader visit http://www.adobe.com/go/acrreader. Windows is 
either a registered trademark or a trademark of Microsoft Corporation 
in the United States and/or other countries. Mac is a trademark of 
Apple Inc., registered in the United States and other countries. Linux 
is the registered trademark of Linus Torvalds in the U.S. and other 
countries. 
사람이 나를 도와 두를 연결하는 몇 가지 작업 코드 방법을 게시 할 수

이런 종류의 Pdfs. 미리 감사드립니다.

+0

iTextSharp 태그를 사용했지만 실제로 PdfSharp를 사용합니다. 지식이 풍부한 사람들을 위해 태그를 업데이트 할 수 있습니다. – mkl

+0

안녕하세요. mkl.I 알고 있습니다. PDF 형식의 양식 (이 경우 버전은 v.7) 간의 병합 프로세스에서 itextSharp를 사용하여 PdfSharp의 대안을 요청하고 있습니다. 나 좀 도와 줄 수있어? – GNuno

+0

'Please wait ...'메시지는 최소한 하나의 양식이 XFA 양식임을 나타냅니다. 필자는 PDF 병합을 지원하는 iTextSharp 클래스가 XFA 형식을 지원하는지 의심 스럽다. – mkl

답변

0

AcroForm 기술을 기반으로 한 양식이 있습니다. 이 경우 필드는 필드 사전, 위젯 주석 사전 등과 같은 PDF 개체를 사용하여 설명됩니다. PDF 1.7, 1.6, ...인지 여부에 관계없이 이러한 양식을 쉽게 병합 할 수 있습니다.

는 XML 양식 아키텍처 (XFA)를 기반으로하는 양식을 가질 수 있으며,이 경우 PDF는 XML 스트림에 포함 된 역할을합니다. 일반적으로 이러한 양식은 XML 스키마에서 시작합니다.

"사용자의 PDF 뷰어에서이 유형의 문서를 표시하지 못할 수 있음"메시지를 기반으로하면 XFA 양식을 사용하고있는 것으로 보입니다. 양식이 동일한 스키마가있는 경우, 당신은 XML 데이터를 병합하고 빈을 채우기, 두 형태의 XML 데이터를 추출

  1. : 당신이 순수 XFA 양식을 병합 할 경우

    다음과 같은 옵션이 있습니다 양식을 병합 된 데이터로 여기서는 XML 스키마를 알고 있으며 XML 데이터를 병합하는 방법을 알고 있다고 가정합니다.

  2. 양식에 동일한 스키마가 없으면 양식을 병합하고 양식을 대화식으로 유지하는 것이 매우 어렵습니다 (불가능하지는 않지만). 데이터에 대한 새 스키마를 만들어야하며 기본적으로 처음부터 새로운 형태.
  3. 양식이 "하이브리드"인 경우 운이 좋을 수 있습니다. 즉, 두 기술을 서로 사용하여 양식에 대한 설명이 포함되어있는 경우입니다. 이 경우 폼의 XFA 부분을 버리고 AcroForm 부분을 유지하고 AcroForm 양식을 병합하십시오.
  4. 마지막으로 양식을 먼저 병합 (닫힌 소스 XFA 작업자 사용) 한 다음 병합 된 PDF를 병합 할 수 있습니다. 최종 결과는 더 이상 양식이 아닙니다.

결론 : (다른 XML 스키마에 따라 두 XFA 양식을 병합) "당신이 인간에 의해 수행하지 않으면 불가능합니다 뭔가를 시도하고"에서 귀하의 질문에 대한 대답은 범위 "정말 쉬운 일을하려고합니다." (XFA 카운터 파트를 제거한 후 두 개의 AcroForm 양식을 병합).

양식의 특성에 대한 세부 정보를 제공하지 않으므로 확실한 답변을 드릴 수 없습니다.

+0

크고 자세한 답변을 주셔서 감사합니다. 처음으로 PDF로 작업하고 itextsharp로 특별히 작업 한 것입니다. 나는 순수 XFA와 하이브리드의 두 가지 유형을 가지고있다.이 경우, 두 가지를 모두 처리 할 수있는 방법을 제공 할 수 있는가? (설명에 따라 옵션 1과 3이 가능)? 미리 감사드립니다. – GNuno

+0

브루노 (Bruno)는 저의 이전 의견에 대한 귀중한 답변을 기다리는 동안 이러한 종류의 PDF를 각각 편집하여 편집 할 수없는 일반 파일로 변환 한 다음이를 병합 할 수있는 방법이 있는지 확인할 수 있습니까? – GNuno

+0

이러한 파일을 XFA Worker를 사용하여 편집 가능한 PDF 파일이 아닌 * ordinary *로 변환하면됩니다. http://itextpdf.com/product/xfa_worker 하이브리드 및 순수 XFA 양식을 프로그래밍 방식으로 병합하는 것은 불가능합니다. 그러한 형태는 단순히 너무 다르다. –