2012-10-26 5 views
1

필자는 PDF 파일이 있습니다. ViewerPreferences를 약간 변경하고 열어 보려고하는데 iTextSharp의 정확한 사용법을 알 수 없습니다. 끝에 저장된 파일이 손상되었습니다. 어떤 아이디어?iTextSharp 수정 PDF 속성

 PdfReader reader = new PdfReader(@"C:\4803.pdf"); 

     using (var stream = new MemoryStream()) 
     { 
      PdfStamper stamper = new PdfStamper(reader, stream); 
      stamper.ViewerPreferences = PdfWriter.AllowPrinting | PdfWriter.PrintScalingNone; 

      stream.Position = 0; 
      byte[] output = LoadFromStream(stream); // Convert it to a byte array 
      SaveToFile(output, @"C:\4803_out.pdf"); // Save it to a file 

      stamper.Close(); 
     } 

답변

3

MemoryStream을 바이트 배열로 변환하여 저장하기 전에 PdfStamper를 닫습니다. 당신이 그것을하는 방법, pdf는 시내에서 아직 완료되지 않습니다.

PS는 : 또한 스트림을 닫는 스탬퍼의 폐쇄를 방지 I 스트림은 또한 그것으로부터 바이트 []를 추출하는 데 유용하지 않은 폐쇄 그렇게하면

stamper.Writer.CloseStream = false 
+0

사용한다. – Craig

+0

이것은 실제로 오류를주지는 않지만 PdfWriter.PrintScalingNone 환경 설정을 적용하지 않는 것 같습니다. – Craig