【问题标题】:asp.net page convert to pdf with css class design使用 css 类设计的 asp.net 页面转换为 pdf
【发布时间】:2014-08-25 12:56:02
【问题描述】:

如何将具有css类设计的.aspx页面转换为包含asp.net控件的pdf格式。

我使用了一些代码,但它没有通过适当的对齐和设计来隐藏页面。

    Response.ContentType = "application/pdf";
    Response.AddHeader("content-disposition", "attachment;filename=UserDetails.pdf");
    Response.Cache.SetCacheability(HttpCacheability.NoCache);
    StringWriter sw = new StringWriter();
    HtmlTextWriter hw = new HtmlTextWriter(sw);
    a.RenderControl(hw);
    StringReader sr = new StringReader(sw.ToString());
    Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 100f, 0.0f);
    HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
    PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
    pdfDoc.Open();
    htmlparser.Parse(sr);
    pdfDoc.Close();
    Response.Write(pdfDoc);
    Response.End();

我用过这个代码..

你能帮帮我吗?请。

【问题讨论】:

  • 定义“适当的排列和设计”。这段代码有什么作用,它与您的期望有何不符?

标签: asp.net


【解决方案1】:

最简单的方法之一是使用 wkhtmltopdf 库/工具

运行这样的命令:

wkhtmltopdf http://yoursite.com/yourpage.aspxyoursit-1970-01-01.pdf

将使用 WebKit 引擎为您的 url 创建一个 pdf 渲染。最好在 ASP.NET 请求之外运行它。例如,将您要呈现的 url 存储在数据库中,并且已安排的作业将所有这些 url 转换为 PDF。当然,如果您必须立即提供文件,这不是一种选择。

如果您要在请求中执行此操作,使用 C 库可能是最好的解决方案。


编辑:

似乎已经为库编写了一个 .NET 包装器:https://github.com/gmanny/Pechkin

【讨论】:

    【解决方案2】:

    您需要使用 XMLWorkerHelper 和 CSSResolver 应用正确的样式 您可以参考以下线程来解决此问题。

    CSS styles not being applied to PDF with iTextSharp

    Cannot get CSS to work in iTextSharp (5.4.3) when making pdf

    首先您需要检查您的样式表是否正确应用。您可以通过删除所有样式但保留一个 CSS 来尝试此操作,比如说

    p
    {
       color:red;
    }
    

    iTextSharp 从样式表中删除/覆盖一些样式。您可以为 pdf 提供单独的 css 文件并一一应用样式。您无法使用 iTextSharp 库将 aspx 页面原样转换为 pdf。

    【讨论】:

    • 它不工作。你能帮忙提出任何其他建议吗
    • 你能检查一下我在答案中提到的方法吗?
    • 是的,先生,我已经检查过并尝试过,但它不起作用。
    • 是否可以使用更新的源来更新问题?还有什么类型的控件是a(a.RenderControl)?在上面尝试之后你会在pdf中得到红色吗?您的 html 是否包含 p?
    • 一个我的 div 的 id 使 runat="server" 在 aspx.cs 文件中访问
    猜你喜欢
    • 2019-10-31
    • 2011-07-01
    • 2011-10-12
    • 2016-06-07
    • 2013-04-22
    • 2013-08-31
    • 1970-01-01
    • 1970-01-01
    • 2014-03-02
    相关资源
    最近更新 更多