我有动态html内容来创建pdf。所以我正在使用Dompdf
。
这是两个快照,有助于理解我想要的是什么。
我的HTML在浏览器中显示这个SNAP
结果PDF
现在您可以看到我的html文本和pdf文本。 pdf文本应与html相同。
我不知道为什么会这样。并且不用担心文字字体。但在我的html文本中,文本看起来有两行,但在pdf中,它出现在一行中。我还使用了word-wrap:break-word;
css,但我认为Dompdf
不支持。
这是我的代码:
<?php
require_once '/path/to/dompdf/dompdf_config.inc.php';
$dir = __DIR__ . '/../public';
$pdfDirectory = $dir . '/testing-pdf';
$pdfFilename = $pdfDirectory . '/output.pdf';
$buffer = <<<HTML
<style>@page {
margin: 36 50;
} </style>
<div style='width:400px;height:300px;background:#C0C0C0;position:relative;'>
<div style='width:200px;height:100px;position:absolute;top:100px; left:90px;'>
<p style='text-align:center;padding:0px;margin:2px 0;font-size:24pt;font-family:arial; word-wrap:break-word; border:1px solid black;'>
Abcd abc ab a
</p>
</div>
</div>
HTML;
$dompdf = new DOMPDF();
$dompdf->load_html($buffer);
$dompdf->set_paper(array(0, 0, 400, 300), "portrait");
$dompdf->render();
file_put_contents($pdfFilename, $dompdf->output());
答案 0 :(得分:1)
好的..所以最后我得到了一些能让它发挥作用的东西。实际上我只是在寻找包装文本,但我忘了字体也是一个问题。我在Arial
中使用html content
字体,可以使用浏览器。但我发现dompdf
本身并未包含Arial
字体。每当我创建pdf时,它都会更改字体Arial to Times new Roman
,Times new Roman
比Arial
更薄。这就是为什么第二行采用第二行文字。