2

当我使用

$ weasyprint table.html table.pdf

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

在此处输入图像描述

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

不知何故,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
4

2 回答 2

3

主要问题是 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 实际上是按预期运行的。删除它会导致预期的结果。

于 2017-09-22T10:58:42.280 回答
1

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

例如:

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

我希望这会有所帮助。

于 2017-09-22T02:22:45.917 回答