Javascript window.print();只打印一页
这是我用PHP编写的代码,然后我回显html,但它只打印第一页。我找到的所有解决方案都说我应该将高度/宽度设置为100%,但它仍然不起作用Javascript window.print();只打印一页,javascript,php,html,Javascript,Php,Html,这是我用PHP编写的代码,然后我回显html,但它只打印第一页。我找到的所有解决方案都说我应该将高度/宽度设置为100%,但它仍然不起作用 <link rel="stylesheet" href="'.base_url('assets/dist/css/AdminLTE.min.css').'"> 已经试过了 body, html, #wrapper { width: 100%; height:100%;
<link rel="stylesheet" href="'.base_url('assets/dist/css/AdminLTE.min.css').'">
已经试过了
body, html, #wrapper { width: 100%;
height:100%;
}
@media print { ... }
<link rel="stylesheet" href="'.base_url('assets/dist/css/AdminLTE.min.css').'">
这是打印页面主体,您可以看到foreach
,这就是为什么在某些情况下,它比一页长的原因。
为什么会这样
<body onload="window.print();">
<div class="wrapper">
<section class="invoice">
<!-- title row -->
<div class="row">
<div class="col-xs-12">
<h2 class="page-header">
'.$company_info['company_name'].'
<small class="pull-right">Date: '.$order_date.'</small>
</h2>
</div>
<!-- /.col -->
</div>
<!-- info row -->
<div class="row invoice-info">
<div class="col-xs-12 ">
<b>'.$this->lang->line('orderno').':</b> '.$order_data['bill_no'].'<br>
<b>'.$this->lang->line('customername').':</b> '.$name['customer_name'].'<br>
<b>'.$this->lang->line('customeradress').':</b> '.$name['customer_address'].' <br />
<b>'.$this->lang->line('customerphonenumber').':</b> '.$name['customer_phone'].'
</div>
<!-- /.col -->
</div>
<!-- /.row -->
</br>
<!-- Table row -->
<div class="row">
<div class="col-xs-12 table-responsive">
<table class="table table-striped">
<thead>
<tr style="border:1px">
<th colspan="2"></th>
<th style="text-align:center" colspan="2">'.$this->lang->line('qty').'</th>
<th colspan="6"></th>
</tr>
<tr>
<th>'.$this->lang->line('productname').'</th>
<th>'.$this->lang->line('price').'</th>
<th>Commandée</th>
<th>à Livrer</th>
<th>'.$this->lang->line('vat').'</th>
<th>'.$this->lang->line('discount').'</th>
<th>'.$this->lang->line('amount').'</th>
</tr>
</thead>
<tbody>';
foreach ($orders_items as $k => $v) {
$product_data = $this->model_products->getProductData($v['product_id']);
setlocale(LC_MONETARY, 'en_US');
$html .= '<tr>
<td>'.$product_data['name'].'</td>
<td>'.number_format($v['rate'], 3).'</td>
<td>'.$v['qty'].'</td>
<td>'.$v['qty_liv'].'</td>
<td>'.$v['vat'].' %</td>
<td>'.$v['discount'].' %</td>
<td>'.number_format($v['amount'], 3).'</td>
</tr>';
if($v['free'] > 0){
$html .= '<tr>
<td>'.$product_data['name'].'</td>
<td>0</td>
<td>0</td>
<td>'.$v['free'].'</td>
<td>0</td>
<td>0</td>
<td>0</td>
</tr>';
}
}
$html .= '</tbody>
</table>
</div>
<!-- /.col -->
</div>
<!-- /.row -->
<div class="row">
<div class="col-xs-6 pull pull-right">
<div class="table-responsive">
<table class="table">
<tr>
<th style="width:50%">'.$this->lang->line('grossamount').':</th>
<td>'.$order_data['gross_amount'].'</td>
</tr>';
$html .= '<tr>
<th>'.$this->lang->line('totalvat').':</th>
<td>'.$order_data['total_vat'].'</td>
</tr>';
$html .='
<tr>
<th>'.$this->lang->line('netamount').':</th>
<td>'.$order_data['net_amount'].'</td>
</tr>
<tr>
<th>'.$this->lang->line('status').':</th>
<td>'.$confiem_status.'</td>
</tr>
</table>
</div>
</div>
<!-- /.col -->
</div>
<!-- /.row -->
</section>
<!-- /.content -->
</div>
</body>
<link rel="stylesheet" href="'.base_url('assets/dist/css/AdminLTE.min.css').'">
“.$company\u info[“company\u name]”
日期:'.$order_Date'
“.$this->lang->line('orderno'):”.$order\u data['bill\u no'].
“.$this->lang->line('customername'):”.$name['customer\u name'].
“.$this->lang->line('customerAddress'):”.$name['customer\u address']”。
“.$this->lang->line('customerphonenumber'):”.$name['customer\u phone']
“.$this->lang->line('qty')”
“.$this->lang->line('productname')。”
“.$this->lang->line('price')。”
指挥部
阿利弗雷尔
“.$this->lang->line('vat')。”
“.$this->lang->line(‘折扣’)。”
“.$this->lang->line('amount')。”
';
foreach($k=>v的订单\项目){
$product\U data=$this->model\u products->getProductData($v['product\u id');
setlocale(LC_MONETARY,'en_US');
$html.='
“.$product_data['name']”
“.number_格式($v['rate'],3)。”
“.$v[‘数量’]”
“.$v['qty_liv']”
“.$v[“增值税]。%”
“.$v[‘折扣’]”.%
“.number_格式($v['amount'],3)。”
';
如果($v['free']>0){
$html.='
“.$product_data['name']”
0
0
“.$v[“免费”]”
0
0
0
';
}
}
$html.='
“.$this->lang->line('grossamount')”:
“.$order_data[“总金额”]”
';
$html.='
“.$this->lang->line('totalvat')”:
“.$order_data[‘增值税总额’]”
';
$html.='
'.$this->lang->line('netamount'):
“.$order_data['net_amount']”
“.$this->lang->line('status'):
“.$confiem_状态”
在某些情况下,foreach超过一页,因此..您尝试过吗?:
<body style="height: 100wh;" onload="window.print();">
<link rel="stylesheet" href="'.base_url('assets/dist/css/AdminLTE.min.css').'">
您可以尝试更好地解释代码的用途,以及为什么要打印大量页面?这解释了使用CSS3@media语法快速创建一组打印样式的一些基本思想
<link rel="stylesheet" href="'.base_url('assets/dist/css/AdminLTE.min.css').'">
诚然,我们中的许多人现在完全忽略了打印样式。然而,创建一些简单的东西,可以节省用户打印他们可能不需要的页面上的所有内容,所需的努力相对较少。我最近为此网站添加了一些打印样式,希望这些样式对其他人有用:
<link rel="stylesheet" href="'.base_url('assets/dist/css/AdminLTE.min.css').'">
首先,这些样式最好放在所有其他样式的末尾。这意味着,由于CSS级联,它们被赋予了更大的权重,而不太可能被其他地方的其他规则过度编写
<link rel="stylesheet" href="'.base_url('assets/dist/css/AdminLTE.min.css').'">
首先,使用CSS3媒体查询,我们可以针对如下打印样式:
@media print {
/* styles go here */
}
<link rel="stylesheet" href="'.base_url('assets/dist/css/AdminLTE.min.css').'">
我搬走了
<link rel="stylesheet" href="'.base_url('assets/dist/css/AdminLTE.min.css').'">
因此,adminlte css是原因。您确定在浏览器中设置了“打印所有页面”吗?您是否已经测试过将页面宽度设置为100%。比如:body,html,#wrapper{width:100%}
height:100%
应该包含在@media print{…}
media query可能重复的@StefanoPascazi是的。已经试过了。。那些解决方案我已经有了#wrapper{宽度:100%;高度:100%;显示:block;}的css文件
<link rel="stylesheet" href="'.base_url('assets/dist/css/AdminLTE.min.css').'">