2017-10-17 121 views
0

我正在使用wkhmtltopdf,发现我遇到了问题。 我正在使用html页面在转换为PDF之前在浏览器中预览内容。wkhtmltopdf从PDF中排除css文件,但在HTML中显示

但让它在我的预览更具可读性,我已经加入了网页上的一些CSS:(在JavaScript/jQuery的有关文件准备好)

$(document).ready(function() { 
    if(window.location.href.indexOf("preview") > -1 && window.location.href.indexOf(".pdf") == -1) { 
     appendCSStoHtml(); 
    } 
    }); 

    function appendCSStoHtml() { 
    $("body").css({"background-color":" #F0F8FF"}); 

    $("#previewHtml").css({ 
     "margin-left":"15%", 
     "margin-right":"15%", 
     "margin-top":"15px", 
     "max-width":"1024px"}); 

    $("#previewHtml > h2").css({"margin-left":" 15px"}); 
    } 

所以这是一切美好和花花公子,但是当我根据这个HTML页面生成我的PDF,然后CSS也在我的PDF中呈现,并且在PDF内部也显示了大纲和背景。

我不希望发生这种情况,我只希望我的CSS样式元素在HTML页面上渲染而不在PDF内。

我该如何做到这一点?

我试着用下面的:

$(document).ready(function() { 
    if(window.location.href.indexOf("preview") > -1 && window.location.href.indexOf(".pdf") == -1) { 
     appendCSStoHtml(); 
    } 
    }); 

但是,这并不重要。

任何想法?

回答

0

它又是我。

不知道是否有类似于我正在寻找的东西。 因此我做了我自己的。

我加了一个页面参数,并检查该代码,看它是否是truefalse

<script type="text/javascript"> 

    $(document).ready(function() { 
    var url_string = window.location.href; 
    var url = new URL(url_string); 
    var renderCss = url.searchParams.get("renderCss"); 

    if(renderCss == 'true') { 
     appendCSStoHtml(); 
    } 
    }); 

    function appendCSStoHtml() { 
    $("body").css({"background-color":" #F0F8FF"}); 

    $("#previewHtml").css({ 
     "margin-left":"15%", 
     "margin-right":"15%", 
     "margin-top":"15px", 
     "max-width":"1024px"}); 

    $("#previewHtml > h2").css({"margin-left":" 15px"}); 
    } 

</script>