【问题标题】:Html to PDF Conversion with CSS使用 CSS 将 HTML 转换为 PDF
【发布时间】:2016-12-06 08:28:16
【问题描述】:

我正在使用 Select.HtmltoPdf。 下面是我的代码:

            var directory = @"D:\Folder\";
        html = html.Replace("/Content", HttpContext.Request.Url.GetLeftPart(UriPartial.Authority) + HttpContext.Request.ApplicationPath + "/Content");
        var filePath = directory + Guid.NewGuid() + ".pdf";
        var converter = new HtmlToPdf(1536,1536);

        converter.Options.EmbedFonts = false;
        converter.Options.ExternalLinksEnabled = true;
        converter.Options.InternalLinksEnabled = true;
        converter.Options.KeepTextsTogether = false;
        converter.Options.KeepImagesTogether = false;
        converter.Options.JavaScriptEnabled = true;

        var pdf = converter.ConvertHtmlString(html, Request.Url.Scheme + "://" + Request.Url.Authority +
Request.ApplicationPath.TrimEnd('/') + "/");

        pdf.Save(filePath);

我的 CSS 在 Content/Site.css 上 要获取 html,我只需使用 $("#printpage").html();然后通过 Scripts/xx/custom/common.js 上的 ajax 调用将其传递给控制器​​。问题是它看起来不像在浏览器上那样。没有加载任何 CSS。我如何也使用 select.htmltopdf 来呈现 css?或者,如果有任何其他可用的软件包可以做到这一点。谢谢

【问题讨论】:

    标签: jquery html css ajax model-view-controller


    【解决方案1】:

    我用css打印所有页面的是:

    在头上:

    <script language="Javascript">
       function print(){window.print();}
    </script>
    

    打印:

    <a href="javascript:window.print()" class="btn_result" >
       Print
    </a>
    

    如果我不想打印某些东西,我会这样做:

    @media print {
    .print_invisible{display:none;}
    }
    

    display:nonevisibily:hidden,视情况而定。

    【讨论】:

      【解决方案2】:

      通过以下方式解决了我的问题:

      由于我只获取页面中某个 div 的 .html,因此不包括 html、head、body 部分。

      我所做的是将它们连接起来并使用 css via

      <link rel="stylesheet">.....
      

      &lt;link rel="stylesheet"&gt;.....并添加必要的标签

      【讨论】:

        猜你喜欢
        • 2019-05-11
        • 1970-01-01
        • 2014-05-05
        • 1970-01-01
        • 1970-01-01
        • 2012-08-16
        • 2017-05-01
        • 2017-01-23
        • 1970-01-01
        相关资源
        最近更新 更多