如何从表中生成PDF并正确分页

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

我有运行laravel的PHP项目。这个想法非常基础:我只想用DOM PDF从数据库生成PDF。我已经在视图中包含了CSS来设置显示。它显示只有一页显示正常。但是当我生成多个页面(分页符)时,显示混乱了。似乎数据彼此重叠。我不知道这里发生了什么,但我认为问题在于我的造型CSS。请帮忙!

PS。我设置了PDF页面方向:横向和纸张:f4

enter image description here

<style>
.page-break {
    page-break-after: always;
}
body {
  font-family: Arial;

}

.split {
  height: 100%;
  width: 45%;
  position: fixed;
  z-index: 1;
  top: 0;
  overflow-x: hidden;
  padding-top: 20px;
}

.left {
  left: 0;
  background-color: none;
}

.right {
  right: 0;
  background-color: none;
}

.centered {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
}

.centered img {
  width: 150px;
  border-radius: 50%;
}
</style>
<body>
<?php

foreach($query as $query){

    ?>
//to split page left and right  
<div class="split left">
  <div class="centered">

    <h2>{{$query->full_name}}</h2>
    <p>Some text.</p>
  </div>
</div>

<div class="split right">
  <div class="centered">

    <h2>{{$query->full_name}}</h2>
    <p>Some text here too</p>
  </div>
</div>

//page break
<div class="page-break"></div>

<?php }?>


</body>
php html css loops dompdf
2个回答
1
投票

尝试在刀片文件中添加此代码

<div style="page-break-after:always;">

</div>

1
投票

我也面临同样的问题。我找到了解决方案,请查看下面的代码。对于DOM PDF,html格式的安排如下

<html>
<head>
<style>
@page { margin: 20px 50px 50px; 
        @top-center {
            content: element(header);
        }
        @bottom-left {
            content: element(footer);
        }
 } 
  div.header {
        display: block;
         top:0; left:0; right:0;
        width:100%;
        position:fixed;
    }
    div.footer {
        display: block;
        padding: 5px;
        position: running(footer);
        width:100%;
        clear:both;
    }
    div.content {
        width: 100%;
    }
</style>
</head>
<body>
   <div class='header'>Header</div>
   <div class='footer'>Footer</div> 
   <div class='content'>Content</div>
</body>
</html>

我认为这个解决方案适合您。

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