Twig 链接显示在生成的 PDF 中
Twig links being displayed in generated PDF
编辑:如果您使用的是 Bootstrap,那么这很可能是导致此问题的原因。阅读 here.
我正在尝试使用 KnpSnappyBundle 生成树枝模板的 PDF。
问题是生成的 PDF 在生成时除了显示所有 link 的 link 文本外,还显示实际的 link,如下图所示:
wkhtmltopdf 中有这个选项吗?我查看了使用 wkhtmltopdf -H
的选项,但 disable-external-links
和 disable-internal-links
都没有解决这个问题。
这是我用来生成 PDF 的代码:
$this->get('knp_snappy.pdf')->generateFromHtml(
$this->renderView(
$template,
array(
$key => $array
)
),
$this->container->getParameter("upload_dir") . '/' . $file,
array(
"print-media-type" => true,
"disable-external-links" => true,
"disable-internal-links" => true
)
);
和 HTML:
<a href="{{ path('work_descriptions') }}#{{ value.descriptionId }}" target="_blank" class="work-link"><strong><u>{{ title }}</u></strong></a>
是的,我知道 {{ title }}
值不包括实际的 link,因为当我在 link 标签之外使用它时,PDF 显示正常。
我正在尽最大努力避免使用 hacky 解决方案,但我不确定问题出在哪里。
更新:无论是否使用 twig 变量都会出现此问题。
我最后做的是添加另一个变量发送到模板,让它知道模板何时用于 PDF,然后 运行 适当的 JavaScript 删除检查变量是否定义后的链接。
在 PDF 生成操作中:
$this->get('knp_snappy.pdf')->generateFromHtml(
$this->renderView(
"my-template.html.twig",
array(
"templateData" => array(
"data" => $session->get("templateData"),
"pdf" => true //<--------- Check this variable in template
)
),
),
$this->container->getParameter("upload_dir") . '/' . $file,
array(
"print-media-type" => true,
"disable-external-links" => true,
"disable-internal-links" => true
)
);
在 Twig 中:
{% if templateData.pdf is defined %}
<script>
$(".work-link").each(function()
{
$(this).prop("href", "#");
});
</script>
{% endif %}
目前看来还可以。
编辑:如果您使用的是 Bootstrap,那么这很可能是导致此问题的原因。阅读 here.
我正在尝试使用 KnpSnappyBundle 生成树枝模板的 PDF。
问题是生成的 PDF 在生成时除了显示所有 link 的 link 文本外,还显示实际的 link,如下图所示:
wkhtmltopdf 中有这个选项吗?我查看了使用 wkhtmltopdf -H
的选项,但 disable-external-links
和 disable-internal-links
都没有解决这个问题。
这是我用来生成 PDF 的代码:
$this->get('knp_snappy.pdf')->generateFromHtml(
$this->renderView(
$template,
array(
$key => $array
)
),
$this->container->getParameter("upload_dir") . '/' . $file,
array(
"print-media-type" => true,
"disable-external-links" => true,
"disable-internal-links" => true
)
);
和 HTML:
<a href="{{ path('work_descriptions') }}#{{ value.descriptionId }}" target="_blank" class="work-link"><strong><u>{{ title }}</u></strong></a>
是的,我知道 {{ title }}
值不包括实际的 link,因为当我在 link 标签之外使用它时,PDF 显示正常。
我正在尽最大努力避免使用 hacky 解决方案,但我不确定问题出在哪里。
更新:无论是否使用 twig 变量都会出现此问题。
我最后做的是添加另一个变量发送到模板,让它知道模板何时用于 PDF,然后 运行 适当的 JavaScript 删除检查变量是否定义后的链接。
在 PDF 生成操作中:
$this->get('knp_snappy.pdf')->generateFromHtml(
$this->renderView(
"my-template.html.twig",
array(
"templateData" => array(
"data" => $session->get("templateData"),
"pdf" => true //<--------- Check this variable in template
)
),
),
$this->container->getParameter("upload_dir") . '/' . $file,
array(
"print-media-type" => true,
"disable-external-links" => true,
"disable-internal-links" => true
)
);
在 Twig 中:
{% if templateData.pdf is defined %}
<script>
$(".work-link").each(function()
{
$(this).prop("href", "#");
});
</script>
{% endif %}
目前看来还可以。