Twitter bootstrap 为什么wkhtmltopdf会在pdf文件中显示链接地址?

Twitter bootstrap 为什么wkhtmltopdf会在pdf文件中显示链接地址?,twitter-bootstrap,wkhtmltopdf,Twitter Bootstrap,Wkhtmltopdf,我尝试从带有wkhtmltopdf 0.10.0 rc2的网页导出pdf文件。但我发现其中存在很多问题: 1、导出基于引导CSS库的页面时,它总是在“a”标记内显示链接地址。例如,linkname将在“linkname”之后显示“./somepage.html”。我可以移除它吗 2、缺少页面的某些元素。以stackoverflow页面为例,运行 wkhtmltopdf http://stackoverflow.com/questions/10307043/rails-3-and-pdfkit-h

我尝试从带有wkhtmltopdf 0.10.0 rc2的网页导出pdf文件。但我发现其中存在很多问题:

1、导出基于引导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、如何导出需要登录的页面


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

因为您实际上只是在寻找问题1的答案,我想添加一条评论,但时间太长了。通常每个问题有一个问题,所以:

1:您是否有一个链接,指向发生这种情况以进行复制的联机内容?我只是试了一下,效果非常糟糕,但仍然如此

2:你在linux上吗?对我来说,在Win7上效果很好。你是指问题、标签、用户等按钮吗?我不知道它们是如何工作的,但是如果它们是JS生成的,可以尝试使用-javascript delay 5000


3:视情况而定。您可能想使用-cookie jar进行身份验证,但我个人不喜欢它。如果应用程序中有打印命令的事件处理程序,则可以尝试使用当前登录的凭据在应用程序中吐出一个tempfile或页面的memorystream,然后将其直接馈送到wkhtmltopdf。除非你的应用程序需要wkhtmltopdf才能显示为已登录,在这种情况下,你需要cookie jar或单个cookie。cookies将包含与登录用户相同的登录数据,因此这有点像会话劫持,这意味着如果您进行任何安全检查,它甚至可能无法工作。有关cookie信息,请参阅。关于cookie jar的更多信息:还有一个相关的SO问题可能会对您有所帮助:

因为您实际上只是在寻找问题1的答案,我想添加一条评论,但它太长了。通常每个问题有一个问题,所以:

1:您是否有一个链接,指向发生这种情况以进行复制的联机内容?我只是试了一下,效果非常糟糕,但仍然如此

2:你在linux上吗?对我来说,在Win7上效果很好。你是指问题、标签、用户等按钮吗?我不知道它们是如何工作的,但是如果它们是JS生成的,可以尝试使用-javascript delay 5000


3:视情况而定。您可能想使用-cookie jar进行身份验证,但我个人不喜欢它。如果应用程序中有打印命令的事件处理程序,则可以尝试使用当前登录的凭据在应用程序中吐出一个tempfile或页面的memorystream,然后将其直接馈送到wkhtmltopdf。除非你的应用程序需要wkhtmltopdf才能显示为已登录,在这种情况下,你需要cookie jar或单个cookie。cookies将包含与登录用户相同的登录数据,因此这有点像会话劫持,这意味着如果您进行任何安全检查,它甚至可能无法工作。有关cookie信息,请参阅。关于cookie-jar的更多信息:还有一个相关的SO问题可能会对您有所帮助:

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

a:link:after, a:visited:after
{    
  content: " (" attr(href) ") ";
}
因此,要阻止这种情况发生,只需在页面中添加以下内容:

@media print
{

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

}

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

a:link:after, a:visited:after
{    
  content: " (" attr(href) ") ";
}
因此,要阻止这种情况发生,只需在页面中添加以下内容:

@media print
{

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

}

对于那些患有同样症状的人来说,这个答案就像一个符咒一样解决了这个问题。很尴尬为什么OP没有标记这个。谢谢你@MichaelRushton对于那些患有同样症状的人,这个答案像一个符咒一样解决了问题。很尴尬为什么OP没有标记这个。谢谢你@MichaelRushton