我希望每个打印页面都重复我的表格标题,但似乎谷歌Chrome不能<thead>很好地支持标签......有没有办法解决这个问题?我正在使用Google Chrome v13.0.782.215.
表格代码非常简单......没什么特别的:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type="text/css" media="all">
@page {
size: landscape;
margin-top: 0;
margin-bottom: 1cm;
margin-left: 0;
margin-right: 0;
}
table {
border: .02em solid #666; border-collapse:collapse;
width:100%;
}
td, th {
border: .02em solid #666; font-size:12px; line-height: 12px;
vertical-align:middle; padding:5px; font-family:"Arial";
}
th { text-align:left; font-size:12px; font-weight:bold; }
h2 { margin-bottom: 0; }
</style>
</head>
<body>
<h2>Page Title</h2>
<table>
<thead>
<tr class="row1">
<th><strong>Heading 1</strong></th>
<th><strong>Heading 2</strong></th> …Run Code Online (Sandbox Code Playgroud) 有很多旧的文本,比如2002年的书,说明我们必须使用"CSS for Web"和"XSL-FO for print".我认为在现今(2012)我们最终可以使用CSS和渲染引擎来理解CSS2的分页媒体和CSS3的东西......但是"新文本",程序员的共识和软件的投资在哪里呢?
XSL-FO或"XSL格式化对象"(W3C标准)是从XML或XHTML内容生成PDF文档的最常用技术.XSL-FO 1.1版 于2006年发布,2001年发布1.0.
CSS2.1来自2011年,但CSS2.0是1998年的标准,2008年修订......我认为标准年龄不是问题.使用HTML,XHTML或XML的CSS具有"打印力":参见PrinceXML,WebKit打印模块(或wkhtmltopdf),ABCpdf等工具.
在CSS和XSL-FO之间进行选择:使用CSS2,您可以将文本完全适合纸质页面等.这不是分页,多列布局,放置脚注,运行页眉或页面边距......两者, CSS(分页媒体)和XSL-FO是做到这一点的好标准.
PS:关于这个上下文有一些相关的问题/答案,关于webkit转换,用PHP转换和关于HTML的Generation PDF.没有人对这个提出的问题有很好的答案.
我需要在Internet Explorer(各种版本)和OS X上的Safari中打印HTML表格中的一些数据.暂时忽略Safari.
当打印的行数超过页面上可以容纳的行时,页面上的最后一行通常会与第一页上的行的一部分以及下一页上的行的其余部分分开.
这看起来很难看.有没有办法避免它?
我一直在寻找,到目前为止我找到了page-break-before: always,但我不确定这是否是我正在寻找的,因为我不知道前面有多少行适合页面.例如,根据内容,行可能更高或更短,并且用户可能以纵向或横向模式打印.我至少假设A4,但如果用户使用的是美国信或其他纸张尺寸,则会引入更多的不确定性.另外,打印机边距怎么样?
那么有办法解决这个问题吗?或者我只需要猜测适合多少行并在此之后强制分页?这甚至会起作用吗?