iText 7从Asp.Net WebApi返回Pdf [英] iText 7 return Pdf from Asp.Net WebApi

查看:74
本文介绍了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!"));

 }

从这里开始,我对如何从控制器返回文件一无所知.我真的很感激任何帮助,因为我只是失去了.

解决方案

我还没有尝试过,只是徒手做,所以请耐心等待,但我想您可以了解这里发生的事情.

>

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;

}

So I am alreay searching about this the entire day and I just don't know how to get it working. Basically I want to create a PDF server side with iText 7 in my ASP.Net WebApi. Very straightforward and easy Pdf creation:

[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!"));

 }

From here on I have no idea on how to return the file from the controller. I would really appreciate any help since I am just lost.

解决方案

I haven't tried this out, just doing it freehand so bear with me, but I think you can get the idea of what's going on here.

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;

}

这篇关于iText 7从Asp.Net WebApi返回Pdf的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆