使用html / css我可以在每页底部打印一个页脚(比如打印机)吗?

时间:2011-06-10 16:51:23

标签: html css html-table position footer

我需要的是页脚打印在每页底部(当它打印在纸上,而不是打印在屏幕上时,这很容易)......

我正在使用表格,我知道表格不好,我通常不使用它们,但这是一个特殊情况:(我使用的是C#webBrowser控件,只使用HTML格式化文档进行打印)。

它工作正常,除了最后页面上的页脚打印...它位于底部的第一页,因为页面内容将其推到底部,但在最后一页,它只是在内容的底部仍然(并且内容不会到达页面底部)

这是一个要显示的图像(这是我打开webBrowser的预览版)。不介意绿色文本,只是在那里进行测试。

good and bad footer http://pdem.info/badfooter.png

如您所见,在左侧,页脚被内容强制在底部,而在右侧,页脚相对于内容处于相同的位置,但我希望它位于底部!

我的页脚的片段只是:

<tfoot id='footer'><tr><td>Your footer goes here</td></tr></tfoot>

有关如何强制页脚位于底部的任何想法?如果有办法让它像那样工作,我不反对使用div!

========= EDIT =========

以下是一些代码:

css:

@media print {
    thead { display: table-header-group; }
    tfoot { display: table-footer-group; }
//I have tried doing position:absolute/fixed with values in pixes and percents
}
@media screen {
    thead { display: none; }
    tfoot { display: none; }
}

填充webBrowser控件的代码:

web_display.DocumentText = "";

            web_display.Document.Write("<body><table id='tblCont'><thead><tr><td>Your header goes here</td></tr></thead>" +
                "<tbody><tr><td>");
            web_display.Document.Write("<body><basefont size='2' face='verdana'>");
            web_display.Document.Write("<ul " + 
                "style='list-style:none;"+
                "padding-left:0px;"+
                "margin-left:0px;"+
                "'>");

            foreach (TNode part in tn.Nodes) {
                web_display.Document.Write("<li><strong>" + part.Text + "</strong>");
                web_display.Document.Write("<ul style='list-style:none;'>");

                foreach (TNode node in part.Nodes) {
                    web_display.Document.Write("<li><strong>" + node.Text + "</strong></li>");
                    web_display.Document.Write("<ol>");//this list will hold the textblock text

                    addTextBlk(web_display, node);

                    web_display.Document.Write("</ol>");//end textblock list
                    web_display.Document.Write("<br style='line-height:6px;'/>");
                }
                web_display.Document.Write("</ul>");//end lvl2 list
                web_display.Document.Write("</li>");//end part item
            }
            web_display.Document.Write("</ul>");//end part list
            //web_display.Document.Write("</li>");//end section item
            web_display.Document.Write("<br />");



            //web_display.Document.Write("</ul>");//end section list

            web_display.Document.Write("</td></tr></tbody><tfoot id='footer'><tr><td>Your footer goes here</td></tr></tfoot>" +
                "</table><div id='newFooter'>This is footer text</div></body>");

2 个答案:

答案 0 :(得分:0)

<style type="text/css">    
#footer
    {
    position:absolute;
    left:200px;
    top:750px;
    }
</style>

更改左侧:和上方:以适合您的页面。 这将把它绝对放在你想要的确切位置。

答案 1 :(得分:0)

编辑 - 注意:我的解决方案是在看起来可能是编辑之前发布的(在我第一次阅读问题时没有显示图片,而且信息较少)关于更改它的问题,答案现在无关紧要。无论如何,这可能会帮助你。

为了通过多个页面保持一致,我个人会使用div。

下一个选项,CSS喜欢(我不知道这是否会起作用)

#footer {
height:100%;
vertical-align:bottom;
}

编辑结束此处

我使用打印和屏幕媒体类型,在您的页面中包含这样的样式表:

<link rel="stylesheet" href="style.css" type="text/css" media="print" />

确保您的其他“屏幕”样式表标记为media =“screen”

现在在你的样式表中放入你的页脚代码,因为你希望看到它打印出来,在这个例子中我使用的是div标签:

#print_footer { border:0 solid #333; font-family:arial; font-size:8px; color:#000; margin-bottom:0; }

打开正常的“屏幕”样式表添加以下类

.no_screen { display:none; }

这将阻止元素在屏幕上显示。

在您的页面中创建您的DIV

<div id="print_footer" class="no_screen">Copyright &copy; 2011 Ryan. All rights reserved.</div>

我希望这会有所帮助。