C# iText 7 Asp.Net可以';t打开Pdf(已损坏)

C# iText 7 Asp.Net可以';t打开Pdf(已损坏),c#,asp.net,pdf,itext,itext7,C#,Asp.net,Pdf,Itext,Itext7,我正在尝试在Asp.Net应用程序中使用iText 7创建PDF。不幸的是,每当我试图打开PDF时,它都会告诉我文件已损坏,无法打开。我不知道为什么,因为我觉得我的代码很好。 这就是我所拥有的: public ActionResult CreateLieferschein() { MemoryStream stream = new MemoryStream(); PdfWriter writer = new PdfWriter(stream); var pdf = ne

我正在尝试在Asp.Net应用程序中使用iText 7创建PDF。不幸的是,每当我试图打开PDF时,它都会告诉我文件已损坏,无法打开。我不知道为什么,因为我觉得我的代码很好。 这就是我所拥有的:

public ActionResult CreateLieferschein()
{
    MemoryStream stream = new MemoryStream();

    PdfWriter writer = new PdfWriter(stream);
    var pdf = new PdfDocument(writer);
    var document = new Document(pdf);
    document.Add(new Paragraph("Hello World!"));

    return File(stream, "application/pdf", "test.pdf");
}

您似乎错过了对
document.Close()的调用

以下是中的示例,请参见最后一行:

var writer = new PdfWriter(dest);
var pdf = new PdfDocument(writer);
var document = new Document(pdf);
document.Add(new Paragraph("Hello World!"));
document.Close();

顺便问一下,您知道如何使用Ajax请求下载此文件吗?如果你这样做,我会提出一个新问题。@Anokrize我想你真的很接近了——只要从新创建的pdf文件中抓取字节并将它们传递给
返回文件(…)
调用即可。请看这里: