Javascript window.print();只打印一页

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%;

这是我用PHP编写的代码,然后我回显html,但它只打印第一页。我找到的所有解决方案都说我应该将高度/宽度设置为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').'">