当前位置: 首页 > 知识库问答 >
问题:

如何使用iText 7将PDF写入HttpResponseMessage

盖成弘
2023-03-14
HttpResponseMessage httpResponseMessage = new HttpResponseMessage();
StringBuilder htmlText = new StringBuilder();
htmlText.Append("<html><body><h1>Hello World!</h1></body></html>");
using (MemoryStream memoryStream = new MemoryStream())
{
    using (PdfWriter pdfWriter = new PdfWriter(memoryStream))
    {
        PdfDocument pdfDocument = new PdfDocument(pdfWriter);
        Document document = new Document(pdfDocument);

        string headerText = "my header";
        string footerText = "my footer";

        pdfDocument.AddEventHandler(PdfDocumentEvent.END_PAGE, new HeaderFooterEventHandler(document, headerText, footerText));

        HtmlConverter.ConvertToPdf(htmlText.ToString(), pdfWriter);

        memoryStream.Flush();
        memoryStream.Seek(0, SeekOrigin.Begin);

        byte[] bytes = new byte[memoryStream.Length];
        memoryStream.Read(bytes, 0, (int)memoryStream.Length);

        Stream stream = new MemoryStream(bytes);
        httpResponseMessage.Content = new StreamContent(stream);

        httpResponseMessage.Content.Headers.ContentType = MediaTypeHeaderValue.Parse("application/pdf");
        httpResponseMessage.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
        {
            FileName = "sample.pdf"
        };
        httpResponseMessage.StatusCode = HttpStatusCode.OK;
    }//end using pdfwriter
}//end using memory stream

共有1个答案

谢旭
2023-03-14

利用您有MemoryStream的事实,并替换

    memoryStream.Flush();
    memoryStream.Seek(0, SeekOrigin.Begin);

    byte[] bytes = new byte[memoryStream.Length];
    memoryStream.Read(bytes, 0, (int)memoryStream.Length);

byte[] bytes = memoryStream.ToArray();

方法也可用于封闭内存流。

 类似资料:
  • 我正在尝试将字体嵌入到我的pdf/a中。 我找到了很多答案,但使用的是iTextSharp 在我的cas中,我使用iText7,但我所尝试的都是错误的: “所有字体都必须嵌入……” 我有一个ttf文件为我的字体,但我没有找到一种方法嵌入到我的pdf使用它... 有人能帮我吗? 事先谢谢 kor6k

  • 问题内容: 我需要将SVG图形添加​​到PDF文件中。 使用iText7是否有可能? 使用iText5: 我在以下页面中发现了这一点: PdfPTable和PdfTemplate 有一种创建类似于Template的方法: 如何创建Graphics2D? 问题答案: 巧合的是,我们今天发布了SVG实现。我们目前尚不支持全部功能集,我们仍将在第二季度及以后的时间里进行开发,但是您已经可以使用它了。该工

  • 我现在试图修改一个只有文本内容的PDF文件。当我使用 谢谢

  • 我试图使用itext7将图像添加到我的pdf文档中,但我得到了DirectoryNotFoundExctive。我使用的是itextSharp,但itext7的情况并非如此,StackOverflow的一些类似问题向我展示了它是如何完成的,但它不会读取资产文件夹中的文件。这是我的代码: 当我使用按钮点击事件运行此代码时,它会抛出以下错误:

  • 我有一个私人钥匙在档案里。“privatekey.pem”并且不知道如何创建谁能帮助我吗?我正在尝试使用IText7签名pdf。

  • 我有一个场景,我需要用iText7库从pdf中获取签名信息。签名可能存在,也可能不存在。当我为没有任何数字签名的PDF实例化一个新的对象时,会出现异常 “没有相关的PdfWriter用于进行间接操作。” .如果有签名,就很好用。我不确定如何纠正这个异常。 更新为包含代码示例