Nreco pdf生成器:text-align:justify和word-break的问题

时间:2017-10-10 09:07:17

标签: c# html pdf wkhtmltopdf nreco

我正在使用Nreco PDF Generator。如果我尝试使用以下HTML生成PDF文件,则文本超出边距。

<html>
<head>
<style> 
P {
     word-break: break-word;
     border: 1px solid black;
}
</style>
</head>
<body>

<P align=justify>Lorem ipsum dolor sit amet, consectetur adipiscing elit. In lacinia lacus lorem, sit amet luctus elit commodo a. Etiam sagittis varius maximus. Donec quis finibus purus, quis pulvinar purus. Nunc vitae eros eget nibh vestibulum malesuada. Quisque elit lorem, tincidunt vel facilisis sed, sollicitudin vulputate nisi. Cras ut vestibulum justo. Pellentesque et metus iaculis, ullamcorper mauris at, finibus dui. Donec in odio et tellus eleifend vehicula at non felis. Aliquam hendrerit auctor lorem dapibus pellentesque. Phasellus neque nunc, congue sed ipsum sit amet, sagittis scelerisque diam. Sed et fermentum odio. Aliquam rhoncus elit mauris, et accumsan lectus viverra quis. Nullam venenatis diam id dolor cursus, eget porttitor mi fermentum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</P>
</body>
</html>

使用展示的表单here,结果如下:Issued pdf

我还尝试在样式中添加overflow-wrap: break-word但无法解决问题。

问题是由align=justify引起的。删除它会使文本保持在边界内 - 但是它应该是合理的。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

由于NReco PdfGenerator是wkhtmltopdf工具的包装器,你的问题实际上是关于它的QtWebKit 4.8引擎。我知道如何处理你描述的align = justify问题至少有两种方法:

1)添加text-rendering: geometricPrecision; CSS规则:

P {
     word-break: break-word;
     border: 1px solid black;
     text-rendering: geometricPrecision;
}

2)使用自定义字体,例如:

<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700&amp;lang=en" />  
<style>
P {
     word-break: break-word;
     border: 1px solid black;
     font-family: 'Open Sans', serif;
}
</style>