在 mPDF 中调整 css 大小

Posted

技术标签:

【中文标题】在 mPDF 中调整 css 大小【英文标题】:Resize css in mPDF 【发布时间】:2021-04-07 15:13:19 【问题描述】:

我正在创建一个如下所示的进度条: Perfect Progress

现在,我正在使用 mPDF 将此进度条添加到 PDF 中,进度条如下所示:

Stretched Progress

我假设这与 css 文件有关。如果可以,我可以在这里添加一个简单的代码来重置进度条的宽度和高度吗?

<?php
use setasign\Fpdi\Fpdi;

session_start();
ob_start();

require_once __DIR__ . '/vendor/autoload.php';

require_once('FPDI/autoload.php');
require_once('fpdf/fpdf.php'); 
require_once('FPDI/Fpdi.php'); 

$pdf = new \Mpdf\Mpdf();

$pdf->AddPage(); 

$pdf->setSourceFile('file.pdf'); 

$tplIdx = $pdf->importPage(1); 

$pdf->useTemplate($tplIdx, 0, 0, 297, 420, true); 

$html = '
<!-- default -->
<div class="clearfix">

    <div class="c100 p12 small">
        <span>12%</span>
        <div class="slice">
            <div class="bar"></div>
            <div class="fill"></div>
        </div>
    </div>

</div>

';

$stylesheet = file_get_contents('css/circle.css');
$pdf->WriteHTML($stylesheet,1);
$pdf->WriteHTML($html, 2);

$pdf->Output("NewFile.pdf", "D");
ob_end_flush(); 
?>

【问题讨论】:

【参考方案1】:

我认为你做不到。 根据我使用 mPDF 的经验,它的 CSS 非常严格,这里是支持的标签列表

https://mpdf.github.io/css-stylesheets/supported-css.html

老实说,我不会试图在这上面浪费时间。 mPDF 使得使用 CSS 设置样式变得非常困难

这种方法可能有点过时,但如果我不想要任何问题,这就是我在 mpdf 中的做法。

<table cellpadding="0" cellspacing="0">
   <tr>
     <td style="width:yourSetPixelValue">
        <img style='width: 100%' src='yourSvgOrImg'>
     </td>
     <td style="width:yourSetPixelValue">
        <div style='width: 100%'>some other content thats on the same row or x-axis</div>
     </td>
   </tr>
</table>

【讨论】:

那么有什么替代方法可以实现这一目标?我只想创建一个进度圆形条。 进度条需要实时更新吗?喜欢您签署一部分并且进度增加吗?如果不是,我只会使用 SVG 或某种图像 不,不需要。我对 css 和 svgs 没有经验。你能用css代码发布答案吗? 我更新了我的答案。方法可能已经过时,但对我有用 谢谢,但你有动态 svg 圈子的链接吗?

以上是关于在 mPDF 中调整 css 大小的主要内容,如果未能解决你的问题,请参考以下文章

在css中调整图像大小以自动调整div [重复]

如何在css中动态调整图像大小?

在 css 中使用 % 调整图像大小

CSS网页下拉列表大小怎么调整

关于如何利用CSS自动调整图片的大小

在 CSS FlexBox 布局中自动调整图像大小并保持纵横比?