使用CSS进行HTML转换为PDF

时间:2016-08-01 09:49:37

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

我正在使用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?或者,如果有任何其他可用的包可以做同样的事情。感谢

2 个答案:

答案 0 :(得分:1)

解决了我的问题:

因为我只在页面中获得某个div的.html,所以html的html,head,body部分都不包括在内。

我所做的是连接它们并通过

使用css
<link rel="stylesheet">.....

<link rel="stylesheet"> .....并添加必要的标签

答案 1 :(得分:0)

我使用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,视情况而定。