首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从网页打印PDF

如何从网页打印PDF
EN

Stack Overflow用户
提问于 2010-11-25 11:54:15
回答 2查看 3.3K关注 0票数 0

有人知道如何让打印页面按钮打印pdf文档吗?

目前我使用的是

<a href="javascript:window.print()" class="print_it" title="Print page">Print Page</a>

显然,这只是打印页面而已。我不得不为每个页面创建pdf,并且认为打印pdf会比打印页面更容易(跨浏览器打印样式有点糟糕;)。

有什么想法吗?

EN

回答 2

Stack Overflow用户

发布于 2010-11-25 12:02:44

没有标准的方法可以在任何浏览器中打印PDF格式的任何内容,例如在Windows平台上。在Mac上,总是有一个选项可以将内容打印为PDF文件,因此常规打印就可以了。

票数 0
EN

Stack Overflow用户

发布于 2010-11-25 12:08:52

我建议你使用Itextsharp。如果您使用的是asp.net c#,则此代码适用于您。不过,它在服务器端运行。您可以将html放在面板中,以使其在服务器中可读。

代码语言:javascript
复制
    /// import these namespaces 
    using System.IO;
    using iTextSharp.text;
    using iTextSharp.text.pdf;
    using iTextSharp.text.html.simpleparser;
    using System.Web.Services;
    using System.Text;

    /// Call this method whenever you need to convert 
    /// the html content inside the panel which runs in the server side. 
    [WebMethod]
    public void ConvertHtmlStringToPDF()
    {
        StringBuilder sb = new StringBuilder(); 
        StringWriter tw = new StringWriter(sb); 
        HtmlTextWriter hw = new HtmlTextWriter(tw); 
        pnlPDF.RenderControl(hw);
        string htmlDisplayText = sb.ToString(); 

        Document document = new Document();
        MemoryStream ms = new MemoryStream();
        PdfWriter writer = PdfWriter.GetInstance(document, ms);
        StringReader se = new StringReader(htmlDisplayText);
        HTMLWorker obj = new HTMLWorker(document);
        document.Open();
        obj.Parse(se);
        // step 5: we close the document
        document.Close();
        Response.Clear();
        Response.AddHeader("content-disposition", "attachment; filename=report.pdf");
        Response.ContentType = "application/pdf";
        Response.Buffer = true;
        Response.OutputStream.Write(ms.GetBuffer(), 0, ms.GetBuffer().Length);
        Response.OutputStream.Flush();
        Response.End();
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4273606

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档