DOMPDF 中的渲染 Javascript 未按预期工作
Render Javascript in DOMPDF is not working as expected
我正在使用 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生成的结果不一样,
图表未显示。
不久前我遇到了与 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 可能也是如此。
我正在使用 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生成的结果不一样,
图表未显示。
不久前我遇到了与 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 可能也是如此。