是否有打印html表背景的技巧?

时间:2011-06-25 17:57:12

标签: html printing background html-table

假设我将日历创建为HTML表格,其中不同的单元格具有不同的背景颜色和不同的文本。它在屏幕上看起来不错。

我意识到打印此表不可能保留单元格的背景颜色。 指示我的观众调整他们的浏览器来打印日历是非常荒谬的。

你在屏幕上看到HTML表是否有任何技巧? 也许有可能以某种方式将其转换为图像或其他东西?


这是我提出的解决方案。
下面是创建可打印的3x2板,100pt x 100pt单元的示意图。我尽可能地简化了片段。主要思想:每个单元格都有一个由文本覆盖的图像。这比具有简单的背景颜色要慢得多,但允许使用单个代码库进行屏幕和打印。
您可以通过额外的样式消除内部间距。

<table style="table-layout:fixed; width:300pt; height:200pt; border-collapse:collapse; line-height: 0;">
    <tr>
        <td>
        <img src="Content/images/backTab.png" style="width:100pt; height:100pt; position:relative; z-index:0" />
        <div style="position:relative; top:-50pt; z-index:1; color:Red; text-align:center; ">Text</div>
        </td>

我是网络开发的新手,我发现整个情况都很荒谬。成千上万的开发人员一直在为打印背景颜色/图像而烦恼,但没有人关心。我看过W3C HTML / CSS / Printing标准。没有什么可以抑制打印背景。如果浏览器决定保存用户的墨迹,则必须有CSS样式才能明确强制执行后台打印。在这种情况下,展示和印刷国际象棋棋盘,填字游戏或日历将不会有愚蠢的困难。

如果有人在W3C中有联系,请告诉他们。

3 个答案:

答案 0 :(得分:1)

您可以创建一个css文件,并在html中指定它应该用于打印:

http://www.alistapart.com/articles/goingtoprint/

但是,如在屏幕上看到的那样进行打印等设置需要在Web浏览器打印设置中更改设置。

不幸的是,如果没有自定义解决方案,就无法解决这个问题。

您可以使用Prototype Javascript并将HTML分配给canvas元素,该元素将在客户端创建图像。

http://prototype-graphic.xilinus.com/

希望这有帮助,

Jeffrey Kevin Pry

答案 1 :(得分:0)

难道你不能使用你想到的背景颜色的10x10图像并将它们设置为使用CSS在背景中重复吗? (固定彩色图像非常容易压缩,往往很小,不用担心评论中指出的大小。)

答案 2 :(得分:0)

此外,除了我的评论,您还可以尝试使用:http://iecapt.sourceforge.net/ 更新:此外,这篇文章可能会有所帮助。 http://www.codeproject.com/KB/graphics/html2image.aspx