【问题标题】:how to configure knp_snappy bundle to generate a different page format如何配置 knp_snappy 包以生成不同的页面格式
【发布时间】:2020-05-07 23:50:25
【问题描述】:

我正在使用 Symfony 4 开发应用程序,我在执行打印功能或从 html 生成不同格式的 Pdf 时遇到问题, 我的应用确实在 Knp_snappy 的帮助下使用控制器动作发布账单,
我已经配置 knp snappy 以生成 A4 页面 pdf 并且在这个阶段它工作得很好,现在我有另一个控制器动作为每张支付的账单发布收据,这就是我卡住的地方,我无法重新配置 knp_snapp 并调整收据的适当尺寸(9 厘米)的格式,我也不想在收据上打印收据大页为 A4。
所以,我想知道当我尝试释放收据时,有没有办法覆盖动作控制器上yaml 文件中的knp_snappy

谢谢你,

【问题讨论】:

    标签: php symfony4 knp-snappy


    【解决方案1】:

    我已经找到了一个解决方案,其中一部分实际上是在github 上的这个问题中,它的描述如下。

    use Knp\Snappy\Pdf as Snappy;
    
     $binary = $this->container->getParameter('knp_snappy.pdf.binary');
    
     $snappy = new Snappy($binary);
    
    
     $html= $this->renderView('bill/receipt.html.twig', array(
                    'receipt'=>$receipt,
                ));
    
    
      $pdf=$snappy->getOutputFromHtml($html,array(
                'orientation' => 'portrait',
                'enable-javascript' => true,
                'javascript-delay' => 1000,
                'no-stop-slow-scripts' => true,
                'no-background' => false,
                'lowquality' => false,
                'page-width' => '8cm',
                'page-height' => '12.40cm',
                'margin-left'=>0,
                'margin-right'=>0,
                'margin-top'=>0,
                'margin-bottom'=>0,
                'encoding' => 'utf-8',
                'images' => true,
                'cookie' => array(),
                'dpi' => 300,
                'enable-external-links' => true,
                'enable-internal-links' => true,
                )
            );
    
        return new Response($pdf,200,array(
            'Content-Type'          => 'application/pdf',
            'Content-Disposition'   => 'inline; filename="receipt-'.$date.'.pdf"'
        ));
    

    我认为代码本身就很清楚。

    • 我得到了 knp snappy 二进制文件

    • 我创建了 Snappy 类的新实例

    • 我在 getOutputFromHtml() 函数中设置页面宽度

    • 所有设置为 0 的边距选项都相同,因此它覆盖整个页面

      其余的都是正常的

    【讨论】:

      猜你喜欢
      • 2016-01-05
      • 2021-03-23
      • 1970-01-01
      • 2021-11-29
      • 1970-01-01
      • 2015-03-15
      • 2016-09-12
      • 2014-10-15
      相关资源
      最近更新 更多