wkhtmltopdf 内部链接
Posted
技术标签:
【中文标题】wkhtmltopdf 内部链接【英文标题】:wkhtmltopdf internal links 【发布时间】:2013-12-13 01:41:23 【问题描述】:我正在使用 wkhtmltopdf 从我的 html 模板生成报告,我正在尝试为输出 PDF 生成索引。
问题是我想实现与microsoft word的索引类似的功能。
为此,我需要在文档之间使用多个内部链接,因此当单击 PDF 的索引时,它会转到第 10 页。
关于如何实现这一点的任何线索?
我在 Windows 中使用 wkhtmltopdf 版本 0.11.0 rc2,但迟早我必须将其移至 linux,因此我需要操作系统之间的兼容解决方案。
非常感谢。
【问题讨论】:
【参考方案1】:我自己找到了解决方案,但我还没有检查与 Linux 的兼容性。
为了实现你在html中添加的内部链接:
链接目标:
<a name="name_of_target">Content</a>
链接到目标:
<a href="#name_of_target">Link Text</a>
转换成pdf后效果很好。
【讨论】:
是的,这是在 HTML 中创建内部链接的经典方法。在 wkhtmltopdf 中,请记住,如果您编辑 PDF(例如添加/删除页面),链接可能会损坏。 我已经注意到了,因为我稍后要添加首页。所以为了解决这个问题,我在开始时添加了一个空页面,稍后用首页替换它,这样做我得到的链接在修改后仍然有效。 在 wkhtmltopdf 中还有一个选项可以从单独的 HTML 文件中进行覆盖,使用cover /path/to/cover.html
选项。我使用它,但它确实限制了使用,因为 wkhtmltopdf 并不能很好地处理复杂的布局。【参考方案2】:
我对 wkhtmltopdf 也有同样的问题
wkhtmltopdf 0.12.2.1 (with patched qt)
debian 9 随软件包一起安装。
wkhtmltox-0.12.2.1_linux-jessie-amd64.deb
我使用命令选项启用了内部链接
--enable-internal-links
我使用了目标:
<a name="name_of_target"><div><img src="image.png">Content</div></a>
还有链接
<a href="#name_of_target">Link Text</a>
但仍然无法正常工作,文档中的其他链接运行良好。 然后我用跨度替换了 div 并且它起作用了。
<a name="name_of_target"><span><img src="image.png">Content</span></a>
该问题与 div 元素的 显示块 规则有关。当我将 display block 规则添加到 span 时,链接不再起作用。
【讨论】:
【参考方案3】:这可能很棘手。例如。不可见(空)链接不能作为目标。此外,结构似乎很重要,并非所有有效的 html5 布局都有效。例如。我发现虽然这有效:
<h2><a name="name_of_target">Target</a></h2>
这不是:
<a name="name_of_target"><h2>Target</h2></a>
尽管两者都是完全有效的(在 html5 中)。 (我使用的是 0.12.6 版本。)
【讨论】:
以上是关于wkhtmltopdf 内部链接的主要内容,如果未能解决你的问题,请参考以下文章