Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Symfony4:KNPNAPY/WkHtmlToPdf的问题_Php_Symfony_Twig_Wkhtmltopdf_Knp Snappy - Fatal编程技术网

Php Symfony4:KNPNAPY/WkHtmlToPdf的问题

Php Symfony4:KNPNAPY/WkHtmlToPdf的问题,php,symfony,twig,wkhtmltopdf,knp-snappy,Php,Symfony,Twig,Wkhtmltopdf,Knp Snappy,我正在尝试建立一个pdf文件生成系统。为此,我开始使用WkHtmlToPdf以及KNPP捆绑包。 以下是我所做的: 1-我首先下载了一个预编译二进制文件(MacOs) 2-然后安装捆绑包:编写器需要KNPLAB/knp snappy() 3-最后使用Knp\bundle\SnappyBundle\knapsybundle::class=>['all'=>true]将bundle添加到bundles.php中, 这是我在我的函数中写的,在我的控制器中: /** * @Route("/pdf/{i

我正在尝试建立一个pdf文件生成系统。为此,我开始使用WkHtmlToPdf以及KNPP捆绑包。 以下是我所做的:

1-我首先下载了一个预编译二进制文件(MacOs)

2-然后安装捆绑包:
编写器需要KNPLAB/knp snappy
()

3-最后使用
Knp\bundle\SnappyBundle\knapsybundle::class=>['all'=>true]将bundle添加到bundles.php中,

这是我在我的函数中写的,在我的控制器中:

/**
 * @Route("/pdf/{id}", name="room_pdf", methods={"GET"}, requirements={"id"="\d+"})
 * @IsGranted("ROLE_ADMIN")
 */
public function pdf(Room $room, \Knp\Snappy\Pdf $knpSnappy)
{  

  $knpSnappy->setOption("encoding","UTF-8");
  $filename = "mypdf";
  $html = $this->renderView('room/show.html.twig' , array(
      'room' => $room,
  ));

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

我做了几个测试,当我尝试生成一个带有URL或HTML代码的pdf时,我没有遇到任何问题,但是当我尝试使用renderView生成一个基于细枝视图的pdf时,我最终得到了一个包含1775个空白页的1777页pdf

有人对这个有想法吗​​可以做些什么

编辑: 我通过正确加载css修复了1777页。我在模板的开头添加以下代码:

{% block stylesheets %}
    {% for path in encore_entry_css_files('app') %}
        <link rel="stylesheet" href="{{ absolute_url(path) }}">
    {% endfor %}
{% endblock %}
{% block scripts %}
    {% for path in encore_entry_css_files('app') %}
        <script src="{{ absolute_url(path) }}"></script>
    {% endfor %}
{% endblock %} 
我在模板末尾添加了以下内容:

{% block stylesheets %}
    {% for path in encore_entry_css_files('app') %}
        <link rel="stylesheet" href="{{ absolute_url(path) }}">
    {% endfor %}
{% endblock %}
{% block scripts %}
    {% for path in encore_entry_css_files('app') %}
        <script src="{{ absolute_url(path) }}"></script>
    {% endfor %}
{% endblock %} 
但是我的引导程序似乎还没有加载。。
(在my app.js中声明为“require('bootstrap');”)

如果粘贴呈现该细枝视图的url,会发生什么?另外,可能是主模板没有在头部使用css和js进行渲染吗?在发送到pdf之前,呈现的$html是什么?我尝试过,但我在本地工作时出现了这个错误“无法加载”我的URL。我使用了var_dump($html),它返回一个“字符串(9586)”。以下是终端所说的“/var/folders/gv/0qb9br_15gggjmhg5zs_qtth0000gn/T/knp_snappy5e3b146a888ee8.77314197.pdf”已成功生成。stderr=“正在加载页面(1/6)\n[>]0%\r[=======>]10%\r[=======>]12%\r警告:加载失败file:///build/app.css (忽略)\n警告:加载失败file:///build/runtime.js (忽略)\n警告:加载失败file:///build/vendors~app.js(忽略)\n警告:加载失败file:///build/app.js (忽略)\NLOOK看起来好像没有定义站点根文件夹,file:///build/etc 会在硬盘根目录中查找文件夹/构建如果将呈现该细枝视图的url粘贴在其中会发生什么情况?另外,可能是主模板没有在头部部分使用css和js呈现吗?在发送到pdf之前呈现的$html是什么ing?我试过了,但是我在本地工作时出现了这个错误“加载失败”。我使用了var_dump($html),它返回了一个“字符串(9586)”。下面是终端所说的“/var/folders/gv/0qb9br_15gggjjmhg5zs_qtth0000gn/T/knp_snappy5e3b146a888ee8.77314197.pdf”已经成功生成。stderr=“加载页面(1/6)\n[>]0%\r[==========”10%\r[==========>]12%\r警告:加载失败file:///build/app.css (忽略)\n警告:加载失败file:///build/runtime.js (忽略)\n警告:加载失败file:///build/vendors~app.js(忽略)\n警告:加载失败file:///build/app.js (忽略)\n看起来好像没有定义站点根文件夹, file:///build/etc 将在硬盘驱动器的根目录中查找文件夹/内部版本