Создать PDF для загрузки с помощью iText 7 в MVC и .NET - PullRequest
0 голосов
/ 26 февраля 2019

Я пытался получить приложение MVC для создания PDF-файла (заполненного данными) и предложить загрузить его пользователю.Я настроил тестовый метод только для того, чтобы увидеть, как это будет сделано, и я пытаюсь создать документ в памяти, поскольку я знаю, что браузеры не всегда знают, что делать, если вы просто передаете ему поток байтов.

Вот метод, который я использую:

    //Test Report
    public ActionResult Report()
    {
        MemoryStream stream = new MemoryStream();        
        PdfWriter wri = new PdfWriter(stream);
        PdfDocument pdf = new PdfDocument(wri);
        Document doc = new Document(pdf);
        doc.Add(new Paragraph("Hello World!"));
        doc.Close();

        return new FileStreamResult(stream, "application/pdf");
     }

Каждый раз, когда я пытаюсь загрузить метод Report (), я получаю сообщение об ошибке, говорящее о том, что поток недоступен, потому что он закрыт.Я рассмотрел несколько разных объяснений, почему это так, но все они, похоже, относятся к iTextSharp и iText 5, поэтому решения не работают.

Что я делаю не так, здесь?

1 Ответ

0 голосов
/ 26 февраля 2019

попытаться удалить любой объект IDisposable и вернуть необработанный массив

public ActionResult Report()
{ 
  byte[] pdfBytes;
  using (var stream = new MemoryStream())
  using (var wri = new PdfWriter(stream))
  using (var pdf = new PdfDocument(wri))
  using (var doc = new Document(pdf))
  {
    doc.Add(new Paragraph("Hello World!"));
    doc.Flush();
    pdfBytes = stream.ToArray();
  }
  return new FileContentResult(pdfBytes, "application/pdf");
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...