1

我正在将 Codeigniter 与 DomPDF 一起使用,它通常运行良好,但有时它会插入空白页并剪切后面的内容。我注意到,当我在包含连续标签的一大块文本中有<i>或标签时,就会发生这种情况。例如,采用这种结构:<b><br />

<p>some text <i>some text<br /><br />some text ... </i></p>

最终插入空白页和剪切内容。

输出内容的代码是:

...
<div style="page-break-before:always;"></div>

<?php foreach ($entries as $entry) { ?>

    <p><?php echo nl2br(str_replace("  ", "&nbsp;&nbsp;", $entry['description'])); ?></p>   

<?php } ?>

<p><?php echo $copyrightmessage ?></p>

<div style="page-break-before:always;width:100%;text-align:center;">

    <div style="height:100px;"></div>

    <img src="writerbig.png" />
    <br />
</div>
...

这是重现该问题的示例 HTML:

To better understand why this course of action was necessary, 
A'th'n learned why<br /> <br /> it was the responsibility, shame of each of the incarnations for ridding this 
world of<br /> <br /> this threat.<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; H'br'a, spoken 
through A'yd'a, explained the CHTHONIAN collective and why, since<br /> <br /> A'yd'a through T'li'a, H'br'a, now, A'th'n it had to come to this point.<br /> <br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<i>Since her initial landfall, every time that the Primae had released a life force<br /> <br /> from a body she 
killed, this being the only logical solution to correct the crisis,<br /> <br /> the spirit had nowhere to go. <br /> 
<br /> It hung in the ether seeking spiritual release. Never finding any, the spirits soon <br /> <br /> learned that 
joining together made them capable of<br /> <br /> creating entities that could exist, again, in the living world, 
albeit as Sapen<br /> <br /> mockeries. <br /> <br /> Learning swiftly, the collected spirits came to the 
realization that not<br /> <br /> only could they exist on the living plane they could alter it.<br /> <br /> 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; It was this "awakening" that started their raiding, terrorizing, 
destroying all<br /> <br /> living beings they encountered.<br /> <br /> 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The end result of their intermingling was to, first, confuse, next, 
annihilate<br /> <br /> the outer husks of the tortured to absorb them into their collective existence.<br /> <br 
/> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; In time, the first few spirits realized they were capable of 
manipulation,<br /> <br /> allowing them to become very adept at their methods with the one goal being 
total<br /> <br /> domination of all species, races.<br /> <br /> Keeping their combined numbers small enabled 
them to become the most powerful psychic <br /> <br /> entities ever created.<br /> <br /> 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The more powerful, the collective became the more notice the 
Primae took of them.<br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Within a few life cycles, the 
Primae realized it was her responsibility to end<br /> <br /> this threat. However, the collective was always one 
step ahead, they knew that if the<br /> <br /> Primae caught them, she would release them back, unwillingly, 
into the spirit world<br /> <br /> where they would soon disperse into eternity.<br /> <br /> 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; This evasion continued until H'br'a, who was a greater Primae then 
ever before,<br /> <br /> since she was a hybrid of two species, Sapen and Floar. It was this species melding<br 
/> <br /> that prevented the collective from manipulating her mind.<br /> <br /> 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; H'br'a would have succeeded, in totally eradicating the collective 
that all the<br /> <br /> previous incarnations had attempted, except two had been on a raid, when she 
arrived.<br /> <br /> Before H'br'a had the opportunity to complete the spiritual release, she had<br /> <br /> 
received her next to last tattoo that triggered her action to seek out her successor.<br /> <br /> All following 
actions lead to her capture by the Levians until she was rescued<br /> <br /> and reborn as A'th'n.<br /> <br /> 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Now it was up to A'th'n, a further enhanced incarnation, who, 
because of&nbsp;&nbsp;her<br /> <br /> being an older Primae incarnation and her physical differences, made 
her immune to the<br /> <br /> CHTHONIAN collective influence.<br /> <br /> Her untried plan with F'lisa, 
hopefully, would be the solution.</i><br /><br /><br />

每个条目都包含纯文本,除了可选的一些<i><b>标签(正确嵌套)。如果我<i>从条目中删除标签,它的格式会完美。

知道如何解决这个问题吗?

4

2 回答 2

2

在打印 PDF 文件之前,我最终编写了一个脚本来去除 HTML 的嵌套。

我做了类似的事情:

查找<br />标签之间的所有标签<i></i>并将其替换为</i><br /><i>

我知道如果嵌套 HTML 标签的任何组合是可能的,这种方法将无法很好地扩展,但在我的情况下,标签仅限于<br>,<i><b>

希望这对某人有帮助

于 2013-07-12T18:37:26.237 回答
0

嵌套标签和 DomPDF 不是好朋友。您可以尝试使用和字体,如果不起作用,请尝试用跨度替换它们。

也许问题出在某些分页符上。如果在打开标签时分页,它将破坏整个 PDF。

于 2013-07-04T13:43:31.810 回答