DOMPDF自动换行

时间:2015-06-08 09:19:32

标签: html laravel word-wrap dompdf

我有以下HTML代码:

<p><strong>Lorem Ipsum</strong> je fiktívny text, používaný pri návrhu tlačovín a typografie. Lorem Ipsum je štandardným výplňovým textom už od 16. storočia, keď neznámy tlačiar zobral sadzobnicu plnú tlačových znakov a pomiešal ich, aby tak vytvoril vzorkovú knihu. <em>Prežil nielen päť storočí</em>, ale aj skok do elektronickej sadzby, a pritom zostal v podstate nezmenený.</p>

转换为pdf后,请看: enter image description here

我尝试使用自动换行,还有:dompdf does wrong calculation for line breaks breaking words但不适合我。

在斯洛伐克语言中不能成为“一个”的结尾。我需要这样:

"..tlačovín a typo-
grafie..."

 "...tlačovín
   a typografie..."

同样的问题在最后但是一个用“v”

我们也不能单独使用数字和世纪

"16.
storočia"

我需要这样:

už od
16. storočia, ... (together)

当我输入16.storočia而没有spacer时,这个问题可以在html中解决。

2 个答案:

答案 0 :(得分:0)

Puuhh dompdf再次 - 我们在一个drupal项目上使用它,这个插件让我生气了好几次。 CSS2而不是CSS3-Support,没有JS和bug就像地狱!!

你可以做的是将16 storocia放入16. storocia - 这应该将它们保持在一起。对于你遇到的另外两个问题,也尝试将它们包装在一个范围内。

这不是最好的解决方法,但我认为对于像这样的排版问题,你总是必须手工完成所有这些“微调”。

我希望我能帮助一点

答案 1 :(得分:0)

dompdf目前没有针对英语以外语言的语言解析规则(虽然调查如何实施这些规则将来可能是值得的)。 dompdf还不支持连字符。稍后将对英语第一语言和非英语语言实施初步支持。

然而,您的特定问题可通过对HTML进行一些调整来解决。您可以通过使用nobr元素包围一组字符来阻止换行。我在以下CSS / HTML中调整了示例文本:

@page {
  size: letter portrait;
}

body {
  font-family: DejaVu Sans, sans-serif; font-size: 125%;  
}
<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
</head>
<body>
  <p><b>Incorrect wrapping</b></p>
  <p><strong>Lorem Ipsum</strong> je fiktívny text, používaný pri návrhu tlačovín a typografie. Lorem Ipsum je štandardným výplňovým textom už od 16. storočia, keď neznámy tlačiar zobral sadzobnicu plnú tlačových znakov a pomiešal ich, aby tak vytvoril vzorkovú knihu. <em>Prežil nielen päť storočí</em>, ale aj skok do elektronickej sadzby, a pritom zostal v podstate nezmenený.</p>
  <p><b>Correct wrapping</b></p>
  <p><strong>Lorem Ipsum</strong> je fiktívny text, používaný pri návrhu tlačovín <nobr>a typografie</nobr>. Lorem Ipsum je štandardným výplňovým textom už od <nobr>16. storočia</nobr>, keď neznámy tlačiar zobral sadzobnicu plnú tlačových znakov a pomiešal ich, aby tak vytvoril vzorkovú knihu. <em>Prežil nielen päť storočí</em>, ale aj skok do elektronickej sadzby, <nobr>a pritom</nobr> zostal <nobr>v podstate</nobr> nezmenený.</p>
</body>
</html>

(我尽力根据您的问题标记文本以正确包装,但我不了解所有语言规则。)