HTML2PDF表内容溢出页面 [英] HTML2PDF Table content is overflowing out of page

查看:232
本文介绍了HTML2PDF表内容溢出页面的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用HTML2PDF库,我遇到一个问题,而我试图输出我的pdf。实际上,我的表总是被截断,无法显示我的表的整个内容,没有它切。
我定义了css样式,但它似乎必须effect.Moverover,如果我没有定义到我的php脚本echo语句表border =1px它不采取以前定义样式CSS。

I am using HTML2PDF library and I am getting an issue while I am trying to to output my pdf. Actually, my table is always truncated, unable to display the whole content of my table without having it cut. I defined css style, but it seems having to effect.Moreover, If I don't defined into my php script on echo statement table border="1px" it doesn't take style css defined previously.

这里我的代码:

<!DOCTYPE html>
<html>
<head>
<title>Test PDF</test>
<style>
table{width:100%; border-collapse:collapse; table-layout:auto; vertical-align:top; margin-bottom:15px; border:1px solid #CCCCCC;}
table thead th{font-size: 2px; color:#FFFFFF; background-color:#666666; border:1px solid #CCCCCC; border-collapse:collapse; text-align:center; table-layout:auto; vertical-align:middle;}
table tbody td{vertical-align:top; border-collapse:collapse; border-left:1px solid #CCCCCC; border-right:1px solid #CCCCCC; font-size: 2px;}
table thead th, table tbody td{padding:5px; border-collapse:collapse;}
table tbody tr.light{color:#979797; background-color:#F7F7F7;}
table tbody tr.dark{color:#979797; background-color:#E8E8E8;}
</style>
</head>
<body>
<html>
<?php
require_once "config.php";

//Start html2pdpf session
ob_start();
//Get tablename
$tablename=$_POST["tablename"];
$ShowPivotTableResult='SELECT * FROM '.$tablename.'';
    $resultLeast=mysqli_query($conn,$ShowPivotTableResult) or die(mysqli_error($conn));
if (!$resultLeast) {
    die("Query to show fields from table failed");
    }
//Display Pivot Table content - script
$fields_num = mysqli_num_fields($resultLeast);
    echo "<table border='1px' CELLSPACING='0' cellpadding='2'><thead><tr>";
    // printing table headers
for($i=0; $i<$fields_num; $i++)
{
    $field = mysqli_fetch_fields($resultLeast);
    echo '<th>'.$field[$i]->name.'</th>';
}
echo "</tr></thead><tbody>\n";
// printing table rows
while($rowLEAST = mysqli_fetch_row($resultLeast))
{
    echo "<tr>";
    // $row is array... foreach( .. ) puts every element
    // of $row to $cell variable
    foreach($rowLEAST as $cellPIVOT)
    echo "<td>$cellPIVOT</td>";
    echo "</tr>\n";
    }
    echo '</tbody></table><br/><br/>';

$content = ob_get_clean();

    // convert
    require_once('html2pdf.class.php');
    try
    {
        $html2pdf = new HTML2PDF('L', 'A4', 'fr', true, 'UTF-8', 0);
        $html2pdf->pdf->SetDisplayMode('fullpage');
        $html2pdf->writeHTML($content, isset($_GET['vuehtml']));
        ob_end_clean();
        $html2pdf->Output(''.$tablename.'.pdf');
    }
    catch(HTML2PDF_exception $e) {
        echo $e;
        exit;
    }

mysqli_close($conn);
?>
</body>
</html>


推荐答案

尝试使用表宽度上的绝对长度, A4的宽度为595pt
关于css属性,尝试使用类而不是标记。
例如:

Try to use absolute lengths on table width like pt. A4 has 595pt width. About css attribute, try to use class instead of the tag. example:

HTML

<style>
    .tbl{
     width: 595pt;
     border: 1px solid #000;
    }
</style>

PHP

echo "<table class='tbl' CELLSPACING='0' cellpadding='2'><thead><tr>";

这篇关于HTML2PDF表内容溢出页面的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆