【问题标题】:dompdf - Why doesn't the CSS show up for printing?dompdf - 为什么 CSS 不显示打印?
【发布时间】:2018-10-05 16:43:04
【问题描述】:

我已经工作了好几个小时来弄清楚为什么我的 CSS 没有被应用于打印 HTML 页面。我创建了一个使用 dompdf 渲染的标记的工作示例:

https://jsfiddle.net/n7Lak0gr/1/

HTML 和 CSS 是一个目录,在一个表中包含多个列。这些行具有交替的背景颜色,并且还有一些其他样式。但是在打印到 PDF 时,样式不会显示,即使我将 media 设置为 all

请注意,如果您从this version 复制所有代码并创建自己的本地 html 文件,您可以更好地看到它,因为另一个问题是在不应用样式时表格溢出到多个页面。

我已在 Chrome、Firefox 和 Internet Explorer 中重现了该问题。而且我已经尝试删除 CSS 的片段,但我无法弄清楚为什么样式不显示。

【问题讨论】:

  • 您需要将 CSS 文件链接到 HTML 文件...您可以通过 <link re="stylesheet" type="text/css" href="style.css"> 之类的方式来完成此操作
  • @NerdOfCode 这不是问题。 JSFiddles 会自动执行此操作。请参阅我链接到的第二个版本。 CSS嵌入在HTML中,也有同样的问题。

标签: html css printing drupal-7 dompdf


【解决方案1】:

大多数浏览器的默认设置打印背景。显然这是为了节省墨水/碳粉。

您可以在浏览器首选项中更改该设置,但不好的是您无法通过您的网站影响这些设置 - 这纯粹是打印用户的决定(大多数用户甚至不知道此偏好设置)

【讨论】:

  • 为了提问,这是一个最小的工作示例。我实际上是在使用dompdf 将标记打印到 PDF 文件。
  • 哦 - 我也在我的网站上使用它,我发现很多 CSS 处理都没有按预期工作 - 需要大量的试验和错误。 .. 但是关于背景的打印,我很确定这已被 dompdf 停用。
  • 它在 0.6.1 中工作,但更新后我遇到了问题。甚至字体大小也不起作用。
  • 我在 dompdf 中所做的是将所有 CSS 移动到由 dompdf 呈现的 php 文件头部的“样式”标签中。所以我没有外部 CSS,只有内部的 - 这为我解决了 * 一些 * 问题(虽然不是全部)。
  • 顺便说一句:我认为您应该将您正在使用 dompdf 的事实添加到您的问题中,并使用 dompdf 标签来“吸引”有使用经验的人。
【解决方案2】:

我想通了。我不得不删除位于sites/all/libraries/dompdf/lib/fonts/ 的字体缓存文件dompdf_font_family_cache.php

在看到其他一些错误并查看 this SO answer 后,我被指出了正确的方向

【讨论】:

    猜你喜欢
    • 2018-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-31
    相关资源
    最近更新 更多