我创建了一系列.html文档,每个打印页面的末尾都显示一个页脚,而不会显示在屏幕上。我还明确声明了分页符,以便它们属于无中断的地方。这是使用CSS组合:
完成的@media screen {
.bottom, .split {
display: none;
}
}
@media print {
.bottom {
display: block;
text-align: center;
width: 8in;
position: fixed;
bottom: 0;
}
.split {
page-break-before: always;
}
.whole {
page-break-inside: avoid;
}
}
底层类用于页脚,分页符用于分页符,而整个类用于数据表,因此它们不会在中间拆分。通过浏览器的print命令打印单个文档时,这非常有效。
但是,这些文档必须通过批处理脚本运行,该脚本为其他一些业务流程(使用DOMPDF的PHP)生成它们的PDF副本。最初,没有识别@media打印CSS引用。然后我将DOMPDF_DEFAULT_MEDIA_TYPE更改为“print”,它开始识别分页符,但仍然拒绝打印页脚。再次,当直接从浏览器打印时,页脚打印出来就很好了。
我需要尽快纠正这个问题。任何意见都将不胜感激。
编辑:我已经确认文档中的HTML符合HTML5标准。
答案 0 :(得分:0)
查看源代码看起来像dompdf几乎为所有类型的媒体类型添加样式除了默认值(或类似的东西......我必须查看代码还有一点看看真的发生了什么。)
case "media":
$acceptedmedia = self::$ACCEPTED_GENERIC_MEDIA_TYPES;
$acceptedmedia[] = $this->_dompdf->get_option("default_media_type");
$media = preg_split("/\s*,\s*/", mb_strtolower(trim($match[3])));
if ( count(array_intersect($acceptedmedia, $media)) ) {
$this->_parse_sections($match[5]);
}
break;
[ref]
您没有指定您正在使用的版本,但是在0.6.2(使用配置文件的最后一个版本。我要说尝试使用像{{1}这样的组合媒体选择器让dompdf识别打印样式。