标签: knp-snappy

wkhtmltopdf标题中不必要的空格

我用页眉和页脚创建了pdf.我想在pdf的第1页和第2页隐藏页眉和页脚.所以我写了下面的javascript代码:

<script>
        /* page counter */
        function subst() {
            var vars={};
            var x=document.location.search.substring(1).split('&');
            for (var i in x) {var z=x[i].split('=',2);vars[z[0]] = unescape(z[1]);}
            var x=['frompage','topage','page','webpage','section','subsection','subsubsection'];
            for (var i in x) {
                var y = document.getElementsByClassName(x[i]);
                for (var j=0; j<y.length; ++j) y[j].textContent = vars[x[i]];

                if(vars['page'] == 1 || vars['page'] == 2){
                    // document.getElementById("header_content").innerHTML = "";
                    document.getElementById("header_content").style.border = '1px solid';
                    var element = document.getElementById("header_content");
                    element.classList.add("hidden");
                }
            }
        }
    </script>
Run Code Online (Sandbox Code Playgroud)

内容是隐藏的,但它涵盖了空白区域.那么如何从第1页和第2页删除该空白区域?

javascript wkhtmltopdf symfony knp-snappy

8
推荐指数
1
解决办法
114
查看次数

wkhtmltopdf thead重叠第二页上的内容

以下是我的PDF结果的样子(请参阅第二页上的重叠标题):

在此输入图像描述


代码是一个简单的HTML表,在一个TD元素中包含大量内容.

<table>
  <thead>
    <tr>
      <th>BESCHREIBUNG</th>
      <th>PREIS</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Lots of TEST's</td>
      <td>1,40 EUR</td>
    <tr>
  </tbody>
</table>
Run Code Online (Sandbox Code Playgroud)

我知道已经存在这个问题(以及其他一些问题):

wkhtmltopdf重复thead标题重叠内容

那里的解决方案对我有用:

thead { display: table-header-group; }
tfoot { display: table-row-group; }
tr { page-break-inside: avoid; }
Run Code Online (Sandbox Code Playgroud)

但是它仅适用于具有多行(tr)的表.

在我的情况下,如上所示,我有一个TD,其描述可以包含很多内容,因此一行将跨越多个页面.

对于这种特殊情况,是否也有解决方案?

html css wkhtmltopdf knp-snappy

7
推荐指数
1
解决办法
755
查看次数

wkhtmltopdf分页符在表中创建空白

我已经实现了knpsnappy软件包,该软件包使用wkhtmtltopdf库生成pdf。

page-break-inside: avoid !important;在tr中使用CSS创建分页符,效果很好。但是它在中的表中创建了白色不必要的空间tr。您可以在图像中看到。 在此处输入图片说明

我检查了为此pdf生成的html,它在html视图中看起来不错。

因此,如果有任何解决方案,那将是很好的。

php pdf wkhtmltopdf symfony knp-snappy

5
推荐指数
0
解决办法
57
查看次数

WkHTMLtoPDF Unicode问题

我已经阅读了几个类似的StackOverflow帖子,但没有一个能够解决我的问题.

问题

我有一个由WkHTMLtoPDF生成的PDF,其中包含一个unicode RIGHT SINGLE QUOTATION MARK(U + 2019或者)字符.在浏览器中呈现,输出如下所示:

工作图像 - 在浏览器中

当我通过WkHTMLtoPDF运行时,我得到以下内容:

失败的图像 - 在wkhtmltopdf

代码

我在CSS中使用以下内容:

@font-face {
    font-family: localGeorgia;
    src: url("file:///usr/share/fonts/truetype/georgia/GEORGIA.TTF");
}

body {
    overflow: visible !important;
    font-family: localGeorgia, Georgia, Times, "Times New Roman", serif;
    font-size: 12px;
}
Run Code Online (Sandbox Code Playgroud)

我还将Georgia字体从我的本地计算机复制到服务器(/usr/share/fonts/truetype/georgia/目录中有几个文件),我已经运行fc-cache -fv清除字体缓存并运行fc-list以验证是否Georgia已正确安装.该localGeorgia字体系列中添加的形式,因为我还没有得到一个工作显示.

我已经通过在线文档和我的操作系统的字符映射验证了佐治亚字体确实支持RIGHT SINGLE QUOTATION MARK(见下文),虽然我不知道如何明确证明这个字形在TrueType文件中(我不熟悉)打开或解析TrueType文件)

Windows字符映射为Georgia字体

在这一点上,我不清楚为什么WkHTMLtoPDF显示这些乱七八糟的字符而不是正确的unicode字形

其他细节(环境等)

我正在运行Ubuntu 16.04

Laravel版本5.3

我正在使用Laravel-Snappy版本0.3.3(使用KNP-Snappy版本0.4.3)

我对Snappy的配置很简单:

<?php
return array(
    'pdf' => array(
        'enabled' => true,
        'binary'  => base_path('vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64'),
        'timeout' => false,
        'options' => …
Run Code Online (Sandbox Code Playgroud)

unicode wkhtmltopdf laravel-snappy knp-snappy

4
推荐指数
1
解决办法
2486
查看次数

如何使用 knp-snappy-bundle 在 HTML 中设置 PDF 的页眉和页脚?

长话短说

随着knp-snappy-bundle我无法生成的PDF头,而我实际上可以产生一个页脚。

这是一个错误,一个功能,还是我做错了什么?

细节

1. 环境

我正在测试knp-snappy-bundle,我还wkhtmltopdfh4cc. 这是我的一部分composer.json

"h4cc/wkhtmltopdf-amd64": "^0.12.3",
"knplabs/knp-snappy-bundle": "^1.5",
Run Code Online (Sandbox Code Playgroud)

生成的二进制文件是这样wkhtmltopdf说的:

$ vendor/bin/wkhtmltopdf-amd64 --version
wkhtmltopdf 0.12.3 (with patched qt)
Run Code Online (Sandbox Code Playgroud)

2.没有页眉或页脚,它的工作原理

我已经设置了一个使用 的控制器knp-snappy-bundle并且它可以工作:

这是我的PdfController

public function downloadPdfAction( string $docName ) : Response
{
    $pdf = $this->getPdf( $docName );

    return new PdfResponse( $pdf, $this->getFilename( $docName ) );
}

private function getPdf( string $docName ) : string
{
    $html = $this->renderView( 'AppBundle:documents:' …
Run Code Online (Sandbox Code Playgroud)

pdf rendering wkhtmltopdf knp-snappy

2
推荐指数
1
解决办法
8143
查看次数