DOMPDF中的渲染Java脚本无法正常工作

问题描述 投票:0回答:1

我正在使用DOMPDF在Symfony框架中创建PDF文档。

  /**
     * @param string $html
     * @param string $name
     *
     * @return string
     */
    public function execute(string $html, string $name): ?string
    {
        $dompdf = new Dompdf();
        $dompdf->setOptions($this->getPdfOptions());
        $dompdf->loadHtml($html);
        $dompdf->render();

        $escapedName = \str_replace('/', '', $name);
        $dompdf->stream($escapedName.".pdf");

        return $dompdf->output();
    }

    /**
     * @return Options
     */
    private function getPdfOptions(): Options
    {
        $pdfOptions = new Options();
        $pdfOptions->set('defaultFont', 'Arial');
        $pdfOptions->setIsPhpEnabled(true);
        $pdfOptions->setIsRemoteEnabled(true);
        $pdfOptions->setIsJavascriptEnabled(true);
        $pdfOptions->set(true);

        return $pdfOptions;
    }

我已启用JavaScript,但没有输出。我使用chartJs库显示条形图。

HTML响应是可以的,但是当将HTML (TWIG)响应用于生成的PDF时,JavaScript生成的结果是不同的,图表未显示。

javascript symfony pdf chart.js dompdf
1个回答
0
投票

不久前,我在CSS上也遇到了类似的问题,看来不可能直接在模板内部加载CSS,因此处理方法进入了控制器。该解决方案对我有用。

$dompdf = new Dompdf();
$html = $this->renderView('path/your_page.html.twig');
$html .= '<link type="text/css" href="/absolute/path/to/pdf.css" rel="stylesheet" />';
$dompdf->loadHtml($html);

我怀疑您的JavaScript可能是相同的。

© www.soinside.com 2019 - 2024. All rights reserved.