打印div的内容

时间:2012-07-05 07:29:15

标签: javascript jquery printing

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

enter image description here

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

编辑:

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

5 个答案:

答案 0 :(得分:1)

我认为最强大的解决方案是创建一个iframe,将要打印的内容复制到该帧,然后打印出来。有JQuery插件。重复:Print the contents of a DIV

另一种可能性是使用打印CSS来隐藏您不想打印的内容(菜单等),还可以删除桌面上的最小高度,从而导致滚动条被移除。

答案 1 :(得分:1)

使用带有介质类型打印的样式表 -

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

改变DIV风格 -

height:auto;
overflow:auto

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

答案 2 :(得分:0)

试试这个,但首先要包含此library

$('YourDiv').printElement();

阅读Div Printing

上的这篇文章

答案 3 :(得分:0)

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

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

答案 4 :(得分: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
                    });

                }