codeigniter加载没有任何用于打印的html标头的视图

问题描述 投票:0回答:2

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不仅渲染了视图,而且还添加了所有meta标签和基本的html页面结构。

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

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

我应该了解如何制作可打印的页面吗?

php javascript codeigniter printing codeigniter-2
2个回答
10
投票

您可以通过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

打印出来

尝试一下。希望它能工作。祝你好运。


2
投票

我认为浏览器的目标是使打印的外观类似于其在屏幕上的外观,除非另有说明。话虽如此,也许您应该考虑只使用@media print专门用于打印的CSS样式表。我去找了found an article,我记得很早以前就看到过有关印刷媒体查询的信息。

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

© www.soinside.com 2019 - 2024. All rights reserved.