为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 symfony 4 的新选项卡中打开生成的 pdf

如何在 symfony 4 的新选项卡中打开生成的 pdf

PHP
回首忆惘然 2022-07-29 10:41:58
在我的Symfony 4应用程序上,我有一个用于从 html 生成 pdf 的按钮,knp snappy bundle但生成的 pdf 显示在同一页面中,所以我正在寻找一种在新选项卡上打开生成的 pdf 的方法,有没有办法完成那 ?
查看完整描述

2 回答

?
噜噜哒

TA贡献1784条经验 获得超7个赞

您可以发布代码吗?

但是,您应该在打开 pdf 的位置添加target="_blank" ,如下所示:

<a target="_blank" href="http://your_url.html">Link to the route that generates the pdf</a>



查看完整回答
反对 回复 2022-07-29
?
ibeautiful

TA贡献1993条经验 获得超5个赞

这是我的收据操作,我创建了新收据,然后打印它:


/**

 * @Route("/receipt/{id}", name="receipt_index", methods={"GET","POST"})

 * @param Bill $bill

 * @return Response

 * @throws Exception

 */

public function newReceipt(Bill $bill): Response

{


    $receipt = new Receipt();

    $date = new \DateTime('now');

    $receipt->setBill($bill);

    $receipt->setBillCost($bill->getCost());

    $receipt->setBillDate($bill->getPrintDate());

    $receipt->setBillNumber($bill->getId());

    $receipt->setClientName($bill->getClient()->getFullName());

    $receipt->setReceiptDate($date);

    $receipt->getBill()->setStatus(true);

    $binary = $this->container->getParameter('knp_snappy.pdf.binary');

    $snappy = new Snappy($binary);


    try {


        $newDate= $date->format('Y-m-d');

        $entityManager = $this->getDoctrine()->getManager();

        $entityManager->persist($receipt);

        $entityManager->flush();


        $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,

            'encoding' => 'utf-8',

            'lowquality' => false,

            'page-width' => '8cm',

            'page-height' => '12.40cm',

            'margin-left'=>0,

            'margin-right'=>0,

            'margin-top'=>0,

            'margin-bottom'=>0,

            '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="recu-'.$newDate.'.pdf"'

    ));


    } catch (Exception $e){

        dump($e);

    }


}


查看完整回答
反对 回复 2022-07-29
  • 2 回答
  • 0 关注
  • 108 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信