2010-08-13 28 views
5

iTextSharp kullanarak basit bir test PDF belgesi oluşturuyorum. Bazı metni göstermek için sadece PdfContentByte kullanıyorum. Bu kodu verilmiştir:iTextSharp ile oluşturulan basit PDF Acrobat Reader tarafından açılamaz?

, elime mesajla takip ediyor
Document document = new Document(); 
    Stream outStream = new FileStream("D:\\aaa\\test.pdf", FileMode.OpenOrCreate); 
    PdfWriter writer = PdfWriter.GetInstance(document, outStream); 
    document.Open(); 
    PdfContentByte to = writer.DirectContent; 
    to.BeginText(); 
    to.SetFontAndSize(BaseFont.CreateFont(), 12); 
    to.SetTextMatrix(0, 0); 
    to.ShowText("aaa"); 
    to.EndText(); 
    document.Close(); 
    outStream.Close(); 

dosya oluşturulur ama bunu açmaya çalıştığınızda (Acrobat Reader kullanarak) gelir: Bu belge açılırken hata oluştu

. Bu belgede okunurken bir sorun oluştu (14).

Sorun nerede? Nasıl düzeltebilirim? Teşekkür ederim

+0

Herhangi bir fikrin var mı? Sanırım bu çok basit bir şey, çok aptalca bir hatam gibi bir şey ama ben sadece onu göremiyorum ... – drasto

+1

Kodunuzu çalıştırdım ve herhangi bir hata almadım, hangi ITextSharp sürümünü kullanıyorsunuz? – dada686

+0

Oluşturulan dosyayı açmaya çalışırken bile değil mi ?? C# kodu çalıştırdığımda, sadece oluşturulan dosyayı açtığımda hata alamıyorum. – drasto

cevap

3

VS yeniden başlatıldıktan sonra sorun çözüldü. Kod değişikliği yapılmadı.

2

nedeniyle herhangi istisnai karşılaşabileceğiniz koşulları ve düzgün Dispose() gibi bu nesneler için kaynakların potansiyel sızıntıları karşılaştığınız sorunu çoğaltmak, ancak dikkate almak lütfen gibi olamaz:

using (Stream outStream = new FileStream("D:\\aaa\\test.pdf", FileMode.OpenOrCreate)) 
    { 
     Document document = new Document(); 
     PdfWriter writer = PdfWriter.GetInstance(document, outStream); 

     document.Open(); 
     try 
     { 
      PdfContentByte to = writer.DirectContent; 

      to.BeginText(); 
      try 
      { 
       to.SetFontAndSize(BaseFont.CreateFont(), 12); 
       to.SetTextMatrix(0, 0); 
       to.ShowText("aaa"); 
      } 
      finally 
      { 
       to.EndText(); 
      } 
     } 
     finally 
     { 
      document.Close(); 
     } 
    } 
İlgili konular