2014-12-07 3 views
-2

아래 코드에서 Document 객체를 반환하고 싶습니다. 현재 문서 예외가 없습니다.PDFStamper에서 PDFDocument 객체 반환 itextsharp

private static Document GeneratePdfAcroFields(PdfReader reader, Document docReturn) 
    { 

     if (File.Exists(System.Configuration.ConfigurationSettings.AppSettings["TEMP_PDF"])) 
      File.Delete(System.Configuration.ConfigurationSettings.AppSettings["TEMP_PDF"]); 


     PdfStamper stamper = new PdfStamper(reader, new FileStream(System.Configuration.ConfigurationSettings.AppSettings["TEMP_PDF"],FileMode.Create)); 
     AcroFields form = stamper.AcroFields; 

     ///INSERTING TEXT DYNAMICALLY JUST FOR EXAMPLE. 
     form.SetField("topmostSubform[0].Page16[0].topmostSubform_0_\\.Page78_0_\\.TextField3_9_[0]", "This value was dynamically added."); 
     stamper.FormFlattening = false; 

     stamper.Close(); 

     FileStream fsRead = new FileStream(System.Configuration.ConfigurationSettings.AppSettings["TEMP_PDF"], FileMode.Open); 

     Document docret = new Document(reader.GetPageSizeWithRotation(1)); 

     return docret; 
    } 
+0

귀하의 질문은 실제로 의미가 없습니다. 'PdfStamper'를 사용하여 채우기를 기입하고 어쩌면 기존 PDF에서 일부 텍스트를 찍을 수 있습니다. 여태까지는 그런대로 잘됐다. 하지만 왜'Document' 인스턴스가 필요한가요? 'Document'는 처음부터 PDF를 생성하기위한 것입니다. 처음부터 만드는 문서에는 페이지가 없다는 것이 분명해야합니다. –

+0

안녕하세요, 귀하의 빠른 답변에 감사드립니다. 실제로 PDF stamper로 만든 파일의 인스턴스를 Document 객체에로드하려고합니다. 내가 작업하고있는 윈도우 애플리케이션은 Document 인스턴스를 필요로하므로 최종적으로 생성 된 pdf를 사용자 화면에 렌더링 할 수 있습니다. 내 PDF로 acroform 가지고 PDFStamper를 사용하고 있습니다. 이전 함수는 AddTemplate 및 가져온 페이지를 사용하여 문서를 반환했지만 양식 필드는 생성 후 병합 (비활성화)되었습니다. 도와주세요. – DevXR

+1

iText'Document' 객체에 파일을로드하는 것은 불가능합니다. 나는 iText가 렌더링을하지 않기 때문에 PDF를 화면에 렌더링하기 위해 iText'Document' 객체를 필요로하는 어떤 Windows 응용 프로그램도 모른다. iText'Document' 클래스를 다른 제품과 혼동하고 있다고 생각합니다. 누군가가 iText'Document' 클래스를 사용하여 문서를 렌더링 한 경우 매우 놀랍습니다. 그 디자인은 심각하게 결함이 있습니다. 귀하의 신청서 내용은 무엇입니까? 웹 응용 프로그램이나 데스크탑 응용 프로그램입니까? –

답변

0

감사합니다. Chris.

@BrunoLowagie가 말한 것을 반복하면 문서 객체를 전달하는 것이 거의 불가능합니다. 이름이 들리는 것처럼 보이지만 문서는 PDF를 대표하지 않습니다. ToString() 또는 GetBytes() (실제로 해당 메서드가있는 경우)를 호출해도 PDF가 생성되지 않습니다. 문서는 사람 친화적 인 명령을 엔진에 전달하여 실제로 PDF> 토큰을 쓰는 일회성 퍼널입니다. 그러나 엔진은 PDF가 아닙니다. 진정으로 PDF 인 유일한 것은 쓰여지는 스트림의 raw> 바이트입니다. - Chris Haas