【问题标题】:Adding file stream for SelectPDF in Blazor (Server-Side)在 Blazor 中为 SelectPDF 添加文件流(服务器端)
【发布时间】:2020-12-27 05:16:23
【问题描述】:

我正在尝试将 HTML 代码导出为 PDF。我需要保存到客户端浏览器而不是服务器。我能在网上找到的只是保存到root然后下载到浏览器。如果可能,我想避免这一步。

void ExportPDF()
    {
        SelectPdf.HtmlToPdf converter = new SelectPdf.HtmlToPdf();
        SelectPdf.PdfDocument doc = converter.ConvertUrl("https://selectpdf.com");
        doc.Save("test.pdf");
        doc.Close();
    }

【问题讨论】:

    标签: blazor blazor-server-side selectpdf


    【解决方案1】:

    查看documentation,您可以改为保存到Stream。所以你的代码是

      SelectPdf.HtmlToPdf converter = new SelectPdf.HtmlToPdf();
      SelectPdf.PdfDocument doc = converter.ConvertUrl("https://selectpdf.com");
      using (var ms = new System.IO.MemoryStream())
      {
        doc.Save(ms);
        doc.Close();
        // todo- create response using the data in `ms`
      }
    

    由于这是一个 Blazor 问题,我想问一下这个方法是否在组件内?如果是这样,则无法在组件内的浏览器上下载文件。您需要在控制器操作中编写此方法并返回FileResult。在 Blazor 组件中,您需要导航到控制器,这将导致浏览器下载文件。

    详情请见Is there a way to get a file stream to download to the browser in Blazor?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-01
      • 1970-01-01
      • 2022-01-17
      • 2023-03-17
      • 1970-01-01
      • 2015-02-26
      • 2020-12-25
      • 2021-05-28
      相关资源
      最近更新 更多