1

我有一个从数据库动态生成的报告,该报告的某个部分应该打印在一个表中。我想以横向轮廓打印此表,将报告的其余部分正常打印为“纵向”。

那么,有什么想法可以实现吗?

4

3 回答 3

2

您可以在 CSS 中设置@page属性,请参见下面的代码:

@media print{@page {size: landscape}}
于 2012-12-26T08:42:01.277 回答
1

如果您创建一个表格并将其视为相对于页面的 100% 宽度,则打印机应自动打印到整个页面宽度。是横向还是纵向取决于您在实际打印时在打印设置中选择哪一个。您能够干净利落地完成此任务的唯一方法是制作两个单独的 html 文档——一个包含纵向部分,另一个包含横向部分。然后分别打印每个文档。

只有另外两种完成任务的理论方法:1)某种浏览器插件,它会为您发送单独的打印作业,确定文档的哪些部分应该以哪种方式打印。

2) 使用 CSS3 变换。生成要打印的表格的静态图像,然后在页面上将其转换(旋转)90 度,使其在屏幕上看起来是横向的。如果您旋转文档的某些部分,那么理论上您可以在一项工作中完成整个工作。但不要浪费你的时间。这将是一场彻头彻尾的噩梦。特别是如果你不得不问怎么做。

于 2012-12-26T08:17:45.347 回答
0

您可以这样将桌子旋转 90 度:

   <div style="display: block; margin: 0; break-before: page; width: 297mm; height: 210mm; transform: rotate(270deg) translate(-296mm, 0);
    transform-origin: 0 0;" >

 <table style="word-wrap: break-word; table-layout: fixed; width: 100%;">
   <tr><td>A row</td></tr>
 </table>
</div>

word-wrap 和 table-layout 样式对于将表格保留在页面内而不覆盖自身是必要的。您可能需要摆弄 div 中的宽度、高度和平移值,但这些值对我来说适用于 A4 页面。它在 Chrome 中对我有用,没有检查过其他人。

于 2018-10-29T14:55:11.443 回答