Php Symfony4:KNPNAPY/WkHtmlToPdf的问题
我正在尝试建立一个pdf文件生成系统。为此,我开始使用WkHtmlToPdf以及KNPP捆绑包。 以下是我所做的: 1-我首先下载了一个预编译二进制文件(MacOs) 2-然后安装捆绑包: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
编写器需要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 将在硬盘驱动器的根目录中查找文件夹/内部版本