Доступ к закрытому файлу невозможен. iTextSharp - C#

Узнай цену своей работы

Формулировка задачи:

Доброго дня. Возникла проблема с файлом и я не могу понять в чём соль. Такая фишка мне уже попадалась несколько раз, но я её каким-то чудесным образом исправлял. Не могу понять в чем проблема, что я могу делать не так и что мне так аукается? студия показывает на строку с "doc.Close();" и ругается. Вот сам код:
            string filePath = "Images.pdf";
 
            iTextSharp.text.Rectangle rec = new iTextSharp.text.Rectangle(PageSize.A4);
            Document doc = new Document(rec, 72, 36, 50, 50);
 
            BaseFont baseFont = BaseFont.CreateFont(@"..\..\arial.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
            iTextSharp.text.Font font = new iTextSharp.text.Font(baseFont, iTextSharp.text.Font.DEFAULTSIZE, iTextSharp.text.Font.NORMAL);
 
            try
            {
                using (FileStream fs = new FileStream(filePath, FileMode.Create, FileAccess.Write, FileShare.None))
                {
 
                    PdfWriter writer = PdfWriter.GetInstance(doc, fs);
 
                    PdfWriter.GetInstance(doc,  fs);
                    doc.Open();
 
                    iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(@"../../img/airplane.jpg");
                    img.ScaleToFit(120, 120);
                    doc.Add(img);
 
                    PdfContentByte cb = writer.DirectContent;
 
                    cb.Rectangle(20f, 20f, doc.PageSize.Width - 40f, doc.PageSize.Height - 40f);
                    cb.SetFontAndSize(baseFont, 10);//свой фонт
                    cb.BeginText();
 
                    cb.ShowTextAligned(PdfContentByte.ALIGN_CENTER, "**************", 300f, doc.PageSize.Height - 50f, 0);
 
                    cb.ShowTextAligned(PdfContentByte.ALIGN_RIGHT, "*****************", 500f, doc.PageSize.Height - 50f, 0);
 
                    cb.EndText();
 
                    cb.MoveTo(20, doc.Top - 30f);
                    cb.LineTo(400, doc.Top - 30f);
 
                    doc.Close();
                    
                    Process.Start(filePath);
                }
 
            }
            catch (DocumentException ex)
            {
                Console.WriteLine(ex.Message);
            }
            catch (IOException ex)
            {
                Console.WriteLine(ex.Message);
            }
Что не так? Заранее спасибо.

Решение задачи: «Доступ к закрытому файлу невозможен. iTextSharp»

textual
Листинг программы
PdfWriter.GetInstance(doc,  fs);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.545 из 5