首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何强迫weasyprint使用PDF中的颜色?

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

Stack Overflow用户
提问于 2017-09-21 14:38:41
回答 2查看 2.2K关注 0票数 4

当我用

代码语言:javascript
复制
$ 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相同)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-22 10:58:42

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

代码语言:javascript
复制
@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实际上是按预期行事。消除这种情况会产生预期的结果。

票数 4
EN

Stack Overflow用户

发布于 2017-09-22 02:22:45

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

例如:

代码语言:javascript
复制
@media print {
    bg-blue {
        background-color: #1e77b4 !important;
    }
}

我希望这能帮上忙。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46346852

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档