如何将网页转换为 PDF 并保留其外观(就像在 Web 浏览器上一样)和文本/链接?

Oma*_*mar 48 browser firefox pdf google-chrome printing

我正在寻找一种将网页转换为 PDF 的方法,但要保留网页的外观。还保留网页的文本(可选择),可搜索[为网页生成图像截图将使文本既不可选择也不可搜索]。

我正在寻找将网页按原样打印为 PDF(如在 Web 浏览器上),而无需对样式或对齐方式进行任何操作,也无需丢失任何网页的静态组件。

这将有助于保留易于阅读、可注释和可搜索的网页的离线副本。


您无需阅读以下任何内容(问题只是上面的部分)即可获得我的问题。以下部分只是以嵌套方式列出我通过研究或其他人的答案得到的内容,以便得出问题的答案。

研究成果(没有解决我的问题的建议)

直到现在试图找到解决方案的结果(所有这些仍然不能作为这个问题的解决方案)

我已经尝试过这些 PDF 网络打印引擎,但所有页面的外观都被操纵,甚至更具破坏性,并且使一些难以阅读:(示例页面截图包含在方括号中)

  • Chrome [原始、打印样式(已禁用|未禁用)]
  • Firefox [原始、打印样式(禁用p1p2 | 未禁用p1p2)]
  • 可读性
    • 它简化了网页(这对于集中阅读是一件好事——但是,这不是我想要的)。我正在寻找以 PDF 格式保留所有网页的位置/样式属性,如在 Web 浏览器上看到的那样,无需任何操作。
  • 福昕阅读器
  • 诺瓦PDF
  • CutyCapt [原始缩放系数:0.4:屏幕截图,输出 PDF]
    • 我会在解决程序在 Windows 上的运行问题后添加链接”
  • wkhtmltopdf [原始缩放系数:0.4屏幕截图输出 PDF ]
    • 它不支持 CSS3。

所有网页截图图像捕捉插件(例如Abduction , Awesome Screenshot , Fireshot , Firefox Screenshot Developer Tool , Full Page Screen Capture , Page2Images , web-capture , ...)都不回答我的问题,因为它们不保留文本和链接

Scrible非常擅长保存网页以及进一步的注释和研究,但不幸的是仍然在线并且没有转换为 PDF 格式。

社区上还有另外两个问题与我的类似,但是,这个问题略有不同,但具有以下重要区别:

更多类似的问题,其中不需要保留文本和链接(页面主要是作为图像屏幕截图捕获的):


笔记

操作系统:Windows 10

seb*_*now 11

我们在大学项目中遇到了同样的问题,并且能够使用

wkhtmltopdf

我们非常喜欢这个工具在命令行上的功能。我们还使用 python 代码调用它来呈现网页的当前状态。它可以选择以 pdf 格式提供网页,由于页面格式(例如 A4)或 png(保留页面视图但不保留链接),通常不适合保留网站视图

还有我们使用的可读性(对于 Python:pypi.python.org/pypi/readability-lxml)项目,它可以很好地去除广告和内容检测(例如,对于报纸文章等)。如果您只想要浏览器的插件或扩展程序,以下可读性实现可能会满足您的需求:

现在离线:https : //www.readability.com/addons/

WaybackMachine 链接:https ://web.archive.org/web/20160308192045/https://readability.com/addons


Ala*_*ect 5

我真的很挣扎,并尝试了迄今为止提到的大多数工具。我得到的最好结果是使用 Chrome 的无头模式。MacOS 上的命令如下所示:

/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --headless --print-to-pdf=test.pdf http://127.0.0.1:8080
Run Code Online (Sandbox Code Playgroud)

我找到的最好的命令行选项列表在这里

然而,这也存在问题。具体来说,我的页面非常重 javascript,我无法让打印功能等待它们完成执行。所以我的输出中没有图像。

我找到的解决方案是一个 nodeJS 包:chrome-headless-render-pdf. 这里的文档很少。它有效并且易于编写脚本。


小智 5

为可能的用户提供另一个答案。在 Firefox 中,曾经有一个插件“将页面打印为 PDF”。您可以搜索其最新版本 0.1.9.3(仅适用于 Quantum 之前的版本)。

目前,Chrome 和 Firefox 都有这个插件,效果很好: PDFMage

  • 保存页面中的所有图像
  • 将文本生成为文本,而不是图像,您可以在生成的 PDF 中搜索文本。
  • 保存超链接
  • 可以选择将长网页另存为一页 PDF(因此图像不会在页面之间拆分)


小智 0

尽管不完全符合您的要求,但如果目标纯粹是保留网页的离线副本以供以后查看,那么将其另存为网页就可以做到这一点。

需要注意的是,它将创建一个 .html 文件和一个包含页面上所有媒体内容的文件夹,而不是单个文档。

在 Chrome 和 Firefox 中,您可以通过右键单击页面并选择另存为...来保存页面。在 Internet Explorer 中,您可以将其保存在“文件”->“另存为”下(按 Alt 键以显示菜单)。