text-align:justify;不使用wkhtmltopdf

时间:2015-01-26 16:29:42

标签: html css pdf pdf-generation wkhtmltopdf

美好的一天!

我使用wkhtmltopdf库从HTML创建PDF文档。我根据这个问题wkhtmltopdf custom font letter spacing

使用了svg字体

我使用自定义字体,由@ font-face添加。 对我来说一切正常,除了一件事:text-align:justify由于某种原因不起作用。

在html文本中按预期对齐,但不在PDF中。

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

UPD :添加了CSS和HTML示例

<style type="text/css">
    @font-face{
        font-family:'source_sans_prolight';
        src: url('/font/sourcesanspro-light-webfont.svg') format('svg');
        font-weight:normal;
        font-style:normal;
    }

    @font-face{
        font-family:'Source Sans Regular';
        src: url('/font/sourcesanspro-regular-webfont.svg') format('svg');
        font-weight:normal;
        font-style:normal;
    }
    html, body, p, ul, li, span, img {
        margin: 0px;
        padding: 0px;
    }

    body {
        font-family: "Source Sans Regular", sans-serif;
        text-rendering: geometricPrecision;
    }
    .page {
        width: 729px;
    }
    .block {
        width: 300px;
        float: left;
        margin-right: 40px;
        text-align: justify;
    }
</style>
<div class="page">
    <div class="block">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque fermentum iaculis mollis. Cras in varius lectus. Mauris consequat vestibulum dolor pretium pulvinar.</div>
    <div class="block">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque fermentum iaculis mollis. Cras in varius lectus. Mauris consequat vestibulum dolor pretium pulvinar.</div>
</div>

HTML按预期呈现:http://i.imgur.com/hE3xYxt.png

在PDF中,我得到了这个:http://i.imgur.com/S3KAPqg.png

2 个答案:

答案 0 :(得分:2)

您需要使用固定宽度尺寸。

body {
    width: 22cm;      
    text-align: justify;
    text-rendering: geometricPrecision;
}

答案 1 :(得分:0)

好的,我尝试过这种方式,它对我有用:

<html>
  <head>
    <style type="text/css">
      @import url(http://fonts.googleapis.com/css?family=Source+Sans+Pro);
      @font-face{
        font-family:'source_sans_prolight';
        src: url('/font/sourcesanspro-light-webfont.svg') format('svg');
        font-weight:normal;
        font-style:normal;
      }

      @font-face{
        font-family:'Source Sans Regular';
        src: url('/font/sourcesanspro-regular-webfont.svg') format('svg');
        font-weight:normal;
        font-style:normal;
      }
      html, body, p, ul, li, span, img {
        margin: 0px;
        padding: 0px;
      }

      body {
        font-family: "Source Sans Regular", sans-serif;
        text-rendering: geometricPrecision;
      }
      .page {
        width: 729px;
      }
      .block {
        font-family: 'Source Sans Pro', sans-serif;
        width: 300px;
        float: left;
        margin-right: 40px;
        text-align: justify;
      }
    </style>
  </head>
  <body>
    <div class="page">
      <div class="block">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque fermentum iaculis mollis. Cras in varius lectus. Mauris consequat vestibulum dolor pretium pulvinar.</div>
      <div class="block">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque fermentum iaculis mollis. Cras in varius lectus. Mauris consequat vestibulum dolor pretium pulvinar.</div>
    </div>
  </body>
</html>

由于我没有添加@import url(http://fonts.googleapis.com/css?family=Source+Sans+Pro);的字体,我刚刚将font-family: 'Source Sans Pro', sans-serif;添加到您的 .block css规则中。
我在我的样本中添加了一些基本的标签html head body。

试一试。并且看看它是否正常。