Верхний и нижний колонтитулы KnpSnappyBundle не отображаются - PullRequest
0 голосов
/ 30 сентября 2018

Как видно из заголовка, я не могу визуализировать нижний колонтитул и верхний колонтитул с помощью knp_snappy.pdf, я видел несколько примеров, и ни один из них не работал для меня, я получаю PDF, но не нижний колонтитул и верхний колонтитул, я не знаю,проблема конфигурации или что-то еще, эта ссылка ниже работает, но другие, но не в моем коде. Я использую symfony 3.4, "knplabs / knp-snappy-bundle": "^ 1.5" и wkhtmltopdf-0.12.2.4

Примеры:
https://github.com/KnpLabs/KnpSnappyBundle/issues/195
https://github.com/KnpLabs/KnpSnappyBundle/issues/154

Это мой код:
config.yml

knp_snappy:
pdf:
    enabled:    true
    binary:     /usr/bin/xvfb-run /usr/bin/wkhtmltopdf
    options:    []

pdf / report.html.twig

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>My PDF</title>
</head>
<body>
<h1>My PDF</h1>
<p>Harum trium sententiarum nulli prorsus assentior.</p>
<h1>My PDF</h1>
</body>
</html>

pdf / footer.html.twig

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Contrat Thuasne Services</title>
  <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=['topage','page'];
      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]];
      }
    }
  </script>
</head>
<body onload="subst()">
<footer>
  <table>
    <tr>
      <td style="width: 33%;">Test</td>
      <td style="width: 34%;" class="center"><span class="page"></span>/<span class="topage"></span></td>
      <td style="width: 33%;" class="right">&copy; Society {{ "now"|date("Y") }}</td>
    </tr>
  </table>
</footer>
</body>
</html>

контроллер

public function testPDFAction()
  {
    $snappy = $this->get('knp_snappy.pdf');
    $content = $this->renderView( 'pdf/report.html.twig' );

    $footer = $this->renderView( 'pdf/footer.html.twig' );
    //$snappy->setOption('header-html', $header);
    $snappy->setOption('footer-html', $footer);


    $html = $snappy->getOutputFromHtml($content);

    return new Response($html,200, [
      'Content-Type'          => 'application/pdf',
      'Content-Disposition'   => 'inline; filename="test.pdf"'
     ]
    );

    // Others test i make

 /*$html = $snappy->getOutputFromHtml($content,
 [
  // 'images' => true,
  'enable-javascript' => true,
  'page-size' => 'A4',
  // 'viewport-size' => '1280x1024',
  'header-html' => $header,
  'footer-html' => $footer,
  'margin-left' => '10mm',
  'margin-right' => '10mm',
  'margin-top' => '30mm',
  'margin-bottom' => '25mm',
 ]);*/
    //$snappy->setOption('header-html', $header);
    // $snappy->getOutputFromHtml($html);
    /*$options = [
     'header-html' => $header,
     'footer-html' => $footer
    ];*/

    /*return new PdfResponse(
     $this->get('knp_snappy.pdf')->getOutputFromHtml($html, $options),
     'file.pdf'
    );*/

    /*return new Response(
     $this->get('knp_snappy.pdf')->getOutputFromHtml($html,$options),
     200,
     [
      'Content-Type'        => 'application/pdf',
      'Content-Disposition' => sprintf('attachment; filename="%s"', "test"),
     ]
    );*/
  }

Не знаюНе знаю, в чем проблема, заранее спасибо !!

...