首页 > 解决方案 > iText 7 从 Asp.Net WebApi 返回 Pdf

问题描述

所以我整天都在搜索这个,我只是不知道如何让它工作。基本上我想在我的 ASP.Net WebApi 中使用 iText 7 创建一个 PDF 服务器端。非常简单明了的 PDF 创建:

[HttpGet]
public HttpResponseMessage 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!"));

 }

从这里开始,我不知道如何从控制器返回文件。我真的很感激任何帮助,因为我刚刚迷路了。

标签: c#asp.netasp.net-web-apipdf-generationitext7

解决方案


我没有尝试过,只是徒手做,所以请耐心等待,但我认为您可以了解这里发生了什么。

public HttpResponseMessage CreateLieferschein() {

  // Create the itext pdf
  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!"));
  document.Close();  // don't forget to close or the doc will be corrupt! ;)

  // Load the mem stream into a StreamContent
  HttpResponseMessage httpResponseMessage = new HttpResponseMessage(HttpStatusCode.OK)
  {
    Content = new StreamContent(stream)
  };

  // Prep the response with headers, filenames, etc.
  httpResponseMessage.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
  {
    FileName = "WebApi2GeneratedFile.pdf"
  };

  httpResponseMessage.Content.Headers.ContentType = new MediaTypeHeaderValue("application/pdf");

  ResponseMessageResult responseMessageResult = ResponseMessage(httpResponseMessage);

  // Cross your fingers...
  return responseMessageResult;

}

推荐阅读