10

我的应用程序之一是基于网络的 POS(销售点)。所以在用 chrome 打印发票时。页眉和页脚由浏览器自动插入,我想通过页面抑制,无需用户干预..

我在印刷媒体中应用了一些CSS ,

@media print {
 #header, #footer { 
    visibility: hidden !important;
    display: none !important;
 }
}

但它不适用,也许选择器不正确?

而且我也尝试减少边距,但是如果打印有多个页面,它会剪切/覆盖页面内容。还有一件事,我不想禁用 chrome 的打印预览选项。

有人对此有很好的解决方案吗?

此致..

4

2 回答 2

25

利用

@page{margin:0px auto;}

在你的 CSS 脚本中。这很可能会在打印时破坏您的页面布局,因此您可能需要添加一个具有正确填充的#container div,以使您的页面再次看起来不错。仅在谷歌浏览器上测试。

于 2012-10-12T08:22:13.917 回答
-1

. . 我不确定您在开发中的知识水平,但 CSS 选择器必须匹配某些元素。[page] “header” 和 [page] “footer”,如“[printed] page”,而不是“[web] page”,不能像这样被 CSS 定位 - 特别是不能随意选择ID,以及可能与您自己的页面 ID 冲突且浏览器供应商永远不会接受实施的 ID。

. . 使用“margin: 0 auto;”的建议 在“@page”指令上实际上是正确的(因为浏览器没有足够的余量来显示它们,它只会隐藏它们)。问题是目前只有 Chrome 正确支持它。对于其他浏览器,除了创建 PDF 并打印它之外,您没有其他好的选择。不过,您可以创建一个可自行打印的 PDF,该 PDF 在加载时使用嵌入在其上的 JavaScript 立即显示打印对话框,但我认为这是您能做到的最远距离。

. . 祝你好运。

于 2013-03-01T03:36:16.587 回答