表格很好地显示在 html 中,但不在使用 mpdf 生成的 pdf 中

Posted

技术标签:

【中文标题】表格很好地显示在 html 中,但不在使用 mpdf 生成的 pdf 中【英文标题】:Table well displayed in html but not in the pdf generated with mpdf 【发布时间】:2014-05-24 18:53:13 【问题描述】:

我正在尝试使用 mPDF 在 php 中生成 PDF。 我的文档的一部分必须是这样的:(来源:cloudandfun.com)

所以我为 html 写了:

<table style = "width:100%">
<tr>
    <td>Appellation <br>(par ordre de préférence)</td>
    <td style = "border:0px;">
        <table style = "width:100%; border:0px;">
            <tr style = "border:0px;"><th style = "border:0px;">Abréviation (S’il y a lieu)</th></tr>
        </table>
        <table style = "width:100%;border:0px;">
            <tr style = " border:0px;">
                <td style = "width:33%;border-bottom:0px;border-left:0px;">Abréviation</td>
                <td style = "width:33%;border-bottom:0px;border-left:0px;">Facultative</td>
                <td style = "width:33%;border-bottom:0px;border-left:0px;border-right:0px;">Obligatoire</td>
            </tr>
        </table>
    </td>
</tr>
<tr>
    <td>1.</td>
    <td>
        <table style = "width:100%;border:0px;">
            <tr style = " border:0px;">
                <td style = "width:33%;border-bottom:0px;border-left:0px;border-top:0px;">--</td>
                <td style = "width:33%;border-bottom:0px;border-left:0px;border-top:0px;">--</td>
                <td style = "width:33%;border:0px;">--</td>
            </tr>
        </table>
    </td>
</tr>
<tr>
    <td>2.</td>
    <td>
        <table style = "width:100%;border:0px;">
            <tr style = " border:0px;">
                <td style = "width:33%;border-bottom:0px;border-left:0px;border-top:0px;">--</td>
                <td style = "width:33%;border-bottom:0px;border-left:0px;border-top:0px;">--</td>
                <td style = "width:33%;border:0px;">--</td>
            </tr>
        </table>
    </td>
</tr>

我的 CSS:

th,td,tr 
  border:1px solid black;
  border-collapse:collapse;


table 
  border:2px solid black;
  border-collapse:collapse;


td 
  font-family:Arial;
  font-size:11px;

在html页面中,效果很好,但是生成pdf的时候是这样的:(来源:cloudandfun.com)

有人对此有解决方案吗?提前致谢。

【问题讨论】:

尝试将样式信息放入附加到页面的 css 表中,然后再次尝试打印,看看是否有帮助。 MPDF 可能无法阅读 style = "width:33%;border:0px;,并且更喜欢其他格式。反正这是我的猜测。 感谢您的回答。我把那个 css 放在 css 表中,并在 mpdf 中调用它,如 $stylesheet = file_get_contents('cn.css'); $mpdf->WriteHTML($stylesheet,1);但这并不能解决问题。 你试过$stylesheet = '&lt;style&gt;'.file_get_contents('cn.css').'&lt;/style&gt;';你必须告诉mdpf这是css 是的,我做了,对于mpdf,参数1意味着它是一个css,我也尝试过像你说的那样使用。当我添加另一种样式时,它会被考虑,所以我认为这不是问题 hmmm,你能把mpdf代码贴出来吗? 【参考方案1】:

我已经找到了解决方案,我没有给出 % ,而是给出了 px 的宽度并且它起作用了。 结论:mPDF 不支持 %(宽度:33%;对于我的示例)但支持 px(宽度:100px;对于我的示例)。 ;) ;)

【讨论】:

以上是关于表格很好地显示在 html 中,但不在使用 mpdf 生成的 pdf 中的主要内容,如果未能解决你的问题,请参考以下文章

在表格视图单元格中嵌入视频

如何制作一个能够很好地处理IE7的现代网站?

HTML 电子邮件:表格还是 div?

在 Django 的管理界面中很好地显示日期

如何在反应中显示表格中的对象数组

查看大表格时,HTML 表格标题始终显示在窗口顶部