1

我需要打印一个 div 的全部内容。注意 div 中的滚动。但是当我Window.print()用来打印它的内容时,它只打印屏幕上的可见部分。我想打印网格中的所有 154 条记录,但它只打印 21 条记录。

在此处输入图像描述

注意:我不想打开新窗口。

编辑:

javascript function()
{
1. Hide divs that you don't want to print
2. window.print()
3. show the divs you hide in step 1
}
4

5 回答 5

1

我认为最强的解决方案是创建一个 iframe,将要打印的内容复制到该框架,然后打印它。有用于此的 JQuery 插件。复制:打印 DIV 的内容

另一种可能性是使用打印 CSS 隐藏您不想打印的内容(菜单等),并删除表格上的最小高度,从而删除滚动条。

于 2012-07-05T07:37:56.943 回答
1

使用具有打印媒体类型的样式表 -

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

并更改 DIV 样式 -

height:auto;
overflow:auto

打印时(使用window.print()),DIV 将增加高度,并隐藏所有其他 DIV。

于 2012-07-05T07:40:13.993 回答
0

试试这个,但首先包括这个

$('YourDiv').printElement();

或者

阅读这篇关于Div 打印的文章

于 2012-07-05T07:36:05.617 回答
0

https://github.com/jasonday/jquery.printThis

我基于其他几个插件编写了上述插件,它允许在页面上打印元素(无弹出窗口)并维护页面样式或专门为打印元素加载新的 css 样式。

于 2012-11-12T20:39:13.103 回答
0

我使用了 printThis,它适用于具有固定高度和滚动条的 div。 removeInline: true属性打印整个文档,即使您在 div 中只能看到它的一部分。

function printpage(divId, title) {
                    var divID = "#" + divId;
                    var divTitle = title;
                    $(divID).printThis({
                        debug: false,
                        importCSS: true,
                        importStyle: true,
                        printContainer: true,
                        pageTitle: divTitle,
                        removeInline: true,
                        printDelay: 333,
                        header: null,
                        formValues: true
                    });

                }
于 2016-08-11T20:14:36.520 回答