【问题标题】:How come wkhtmltopdf displays the link address in pdf file?wkhtmltopdf如何在pdf文件中显示链接地址?
【发布时间】:2015-09-08 19:25:34
【问题描述】:

我尝试使用 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、如何导出需要登录的页面?

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

【问题讨论】:

    标签: twitter-bootstrap wkhtmltopdf


    【解决方案1】:

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

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

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

    @media print
    {
    
      a:link:after, a:visited:after
      {
        content: "";
      }
    
    }
    

    【讨论】:

    • 对于那些患有相同症状的人,这个答案就像一个魅力一样解决了它。为什么OP没有标记这一点很尴尬。谢谢@MichaelRushton
    【解决方案2】:

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

    1:您是否有指向在线内容的链接以进行复制?我刚刚尝试了http://twitter.github.io/bootstrap/getting-started.html#examples,它成功了(非常丑陋,但仍然如此)。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-06
      • 1970-01-01
      • 1970-01-01
      • 2012-03-22
      • 2017-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多