当我使用时
$ weasyprint table.html table.pdf
在 https://jsfiddle.net/MartinThoma/0hL29mcc/ 上它会生成一个如下所示的 PDF:
如您所见,标题是黑色的,而不是红色的。而且,桌子不再是条纹了。
weasprint 以某种方式删除了所有颜色。我怎样才能防止这种行为/保留颜色? (我不一定需要使用weasyprint,但我不知道有什么更好的选择)
我用
WeasyPrint version 0.40
。
pandoc table.html -o table.pdf
:不应用 CSS 页面旋转;不应用CSSwkhtmltopdf table.html out.pdf
:不应用 CSS 页面旋转; (但应用了一些 CSS - 但不是颜色)import pdfkit;pdfkit.from_file('table.html', 'outpdfkit.pdf')
:不应用CSS页面旋转(看起来与wkhtmltopdf
相同)主要问题是 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 实际上是按预期运行的。删除它会得到预期的结果。
我也遇到了这个问题,我有一个合适的解决方法。至少就我而言,这似乎是 WeasyPrint 和 Bootstrap 之间的冲突。我在 Python 中使用 WeasyPrint。我重新排序了 CSS 文件列表,将自定义 CSS 放在第一位 - 我认为它需要放在最后。然后我将
!important
修饰符添加到我的 color
和 background-color
标签中。
例如:
@media print {
bg-blue {
background-color: #1e77b4 !important;
}
}
希望有帮助。
如果这对任何人都有用,我通过使用“屏幕”媒体执行
weasyprint
解决了这个问题,如下所示:
weasyprint file.html file.pdf -m screen
默认情况下,weasyprint 使用“打印”媒体(如其他答案所示),但我需要使用“屏幕”媒体的 CSS 样式。