【问题标题】:Print aspx page to PDF on button click, but print PDF serverside单击按钮时将 aspx 页面打印为 PDF,但在服务器端打印 PDF
【发布时间】:2018-07-08 20:19:47
【问题描述】:

我有一份显示在网页上的报告,用户一直在将此网页打印为 PDF。我需要的是网页在用户单击按钮时自动打印为 PDF(保存)到网站服务器上的某个位置。

iTextSharp 似乎不允许我将 PDF 保存为打印到 PDF 时的外观(保留 css 等),而且还有一些许可问题。 PrinceXML 看起来不错,但是太贵了。

有没有办法打开一个新的aspx页面然后打印到PDF服务器端?

【问题讨论】:

    标签: c# asp.net pdf


    【解决方案1】:

    您可以使用内置的 RLDC 报告。它是免费的,具有漂亮的设计和功能,并允许您打印为 PDF。您无需保存 PDF 文件并担心管理和删除它,只需将其打印到流中并使用流进行下载。

    类似这样的:

    Warning[] warnings;
    string[] streamids;
    string mimeType;
    string encoding;
    string extension;
    
    byte[] bytes = reportViewer.LocalReport.Render("PDF", null, out mimeType, out encoding,
                   out extension, out streamids, out warnings);
    

    然后将bytes写入下载流。

    Response.Buffer = true;
    Response.Clear();
    Response.ContentType = mimeType;
    Response.AddHeader("content-disposition", "attachment; filename= filename" + "." + extension);
    Response.OutputStream.Write(bytes, 0, bytes.Length);
    Response.Flush();
    Response.End();
    

    【讨论】:

    • RLDC 是否有将带有 css 的 html 页面转换为 pdf 的选项?
    • @Ryu RLDC 是一个报告工具,而不是一个转换工具。您可以使用它来构建报告,然后可以导出为 PDF、Excel、Word 或图像。如果 OP 不想为将 HTML 打印为 PDF 的工具付费,那么 RLDC 是一个不错的选择。是的,必须重新创建报告,但只有 OP 才能决定是否值得这样做或支付费用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-08
    • 2012-08-23
    • 1970-01-01
    相关资源
    最近更新 更多