0

php

function print(){
    $data=$this->session->userdata('print_data');
    $this->load->view('printer',$data);
}

Html(打印机视图)

<div id='printerwrapper'>
......
</div>
<style>.....</style>
<script>windows.print();</script>

当我查看并打印出来时,它会打印整个页面,并且 div 被调整大小以成为页面的一小部分,所以我检查了页面的 html 发现 ci 不仅呈现视图,而且还添加了所有元标记和基本html页面结构。

<html><head><title></title></head><body>......</body></html>

这是我试图打印的页面示例, 在此处输入图像描述 我想要打印的是这个 Div,而不是整个页面!

关于如何制作可打印页面,我应该知道些什么?

4

2 回答 2

12

您可以通过JavaScript轻松打印Selected div。看看下面的代码......

首先在头部添加这段 JavaScript 代码......

<script type="text/javascript">
function printDiv(divName) {
    var printContents = document.getElementById(divName).innerHTML;
    var originalContents = document.body.innerHTML;
    document.body.innerHTML = printContents;
    window.print();
    document.body.innerHTML = originalContents;
}
</script>

然后查看页面如下...

<div id="printableArea">
       Your Content here.....
</div>


<input type="button" onclick="printDiv('printableArea')" value="Print Invoice" />

当您单击打印发票按钮时。然后它将使用选定的 DIV id Printablearea打印出来

尝试这个。希望它会奏效。祝你好运。

于 2013-01-15T03:40:35.433 回答
2

我认为浏览器的目标是使打印看起来与其在屏幕上的外观相似,除非另有说明。话虽如此,也许您应该考虑只使用专门用于打印的 CSS 样式表,使用@media print. 我去为你找到了一篇我记得很久以前看过的关于印刷媒体查询的文章。

不过,这实际上取决于您的目标。如果您希望屏幕版本看起来像现在一样,但打印版本看起来不同,我认为这是要走的路。如果它在屏幕上的外观并不重要,也许你可以完全摆脱你的打印机包装器,只是左右浮动。

于 2013-01-15T00:53:30.873 回答