如何强制weasyprint使用PDF中的颜色?

时间:2017-09-21 14:38:41

标签: html pdf weasyprint

当我使用

$ weasyprint table.html table.pdf

https://jsfiddle.net/MartinThoma/0hL29mcc/上生成一个如下所示的PDF:

enter image description here

如您所见,标题是黑色,而不是红色。此外,该表不再是条纹。

以某种方式weasyprint删除所有颜色。如何防止此行为/保持颜色? (我不一定需要使用weasyprint,但我不知道更好的选择)

我使用WeasyPrint version 0.40

我尝试了什么

  • pandoc table.html -o table.pdf:不应用CSS页面旋转;不适用CSS
  • wkhtmltopdf table.html out.pdf:不应用CSS页面旋转; (但是应用了一些CSS - 而不是颜色)
  • import pdfkit;pdfkit.from_file('table.html', 'outpdfkit.pdf'):不应用CSS页面旋转(看起来与wkhtmltopdf相同)

2 个答案:

答案 0 :(得分:1)

我也遇到了这个问题,我有一个合适的解决方法。至少在我的情况下,它似乎是WeasyPrint和Bootstrap之间的冲突。我在Python中使用WeasyPrint。我重新排序我的CSS文件列表,将我的自定义CSS放在第一位 - 我认为它需要最后一次。然后我将!important修饰符添加到我的colorbackground-color标记。

例如:

@media print {
    bg-blue {
        background-color: #1e77b4 !important;
    }
}

我希望有所帮助。

答案 1 :(得分:0)

主要问题是Bootstrap 3包含以下内容:

@media print{
    *,:after,:before {
        color:#000!important;
        text-shadow:none!important;
        background:0 0!important;
        -webkit-box-shadow:none!important;
        box-shadow:none!important
    }
}

因此weasyprint实际上是按预期运行的。删除它会产生预期的结果。