1

我尝试使用 wkhtmltopdf 0.10.0 rc2 从网页导出 pdf 文件。但是我发现其中有很多问题:

1、导出基于 Bootstrap CSS 库的页面时,总是在“a”标签内显示链接地址。例如,“linkname”将在“linkname”之后显示“./somepage.html”。我可以删除它吗?

2,页面的某些元素丢失。以stackoverflow页面为例,运行

wkhtmltopdf http://stackoverflow.com/questions/10307043/rails-3-and-pdfkit-how-to-specify-page-size/ ./test.pdf 

将呈现页面中的大多数元素。但是“stackoverflow”标志后的5个按钮不见了。我怎样才能避免这种情况?

3、如何导出需要登录的页面?

在这三个问题中,我对第一个问题最好奇。我google了很多,但没有结果。所以我会接受第一个答案。非常感谢提前。

4

2 回答 2

5

回答第一个问题;链接位置附加到链接文本,因为它使用以下css规则(或一些类似的变体):

a:link:after, a:visited:after
{    
  content: " (" attr(href) ") ";
}

因此,要阻止这种情况发生,只需将以下内容添加到您的页面:

@media print
{

  a:link:after, a:visited:after
  {
    content: "";
  }

}
于 2015-09-08T11:25:34.367 回答
0

由于您实际上只是在寻找问题 1 的答案,因此我想添加评论,但它太长了。通常在 SO 上每个问题有 1 个问题 :)

1:你有一个链接到网上发生这种情况的复制吗?我刚刚尝试了http://twitter.github.io/bootstrap/getting-started.html#examples并且它有效(非常丑陋,但仍然如此)。

2:你在linux上吗?对我来说,在 Win 7 上它运行良好。您是指“问题”、“标签”、“用户”等按钮吗?我无法看到它们是如何工作的,但--javascript-delay 5000如果它们恰好是 JS 生成的,也许可以尝试一下。

3:视情况而定。您可能想--cookie-jar用于身份验证,但我个人不喜欢它。如果您的打印命令的事件处理程序在您的应用程序中,您可以尝试使用当前登录的凭据在应用程序内吐出临时文件或页面的内存流,然后将其直接提供给 wkhtmltopdf。除非您的应用需要 wkhtmltopdf 才能显示为已登录,在这种情况下您需要 cookie jar 或单个 cookie。cookie 将包含与您的登录用户相同的登录数据,因此它有点像会话劫持,这意味着如果您进行任何安全检查,它甚至可能无法正常工作。有关 cookie 信息,请参阅http://madalgo.au.dk/~jakobt/wkhtmltoxdoc/wkhtmltopdf_0.10.0_rc2-doc.html。更多关于饼干罐的信息:https://code.google.com/p/wkhtmltopdf/issues/detail?id=356 另外,还有一个相关的 SO 问题可能会对您有所帮助:wkhtmltopdf 登录到 asp.net 网络应用程序

于 2013-07-22T07:25:35.307 回答