如何在 Linux 下将网页转换为 PDF 文件
PDF
![](/data/attachment/album/202110/28/111738tncncbml6jwcz6s8.jpg)


当你将某些资源存档或用于教育目的时，将网页保存为 PDF 是很方便的。


但是，你如何在 Linux 中把一个网页转换成 PDF？


你可以选择使用每个 Linux 发行版上的网页浏览器（GUI），或者使用终端将网页变成 PDF 文件。


在这里，我将提到这两种方法来帮助你完成工作。


### 方法 1：使用网页浏览器将网页转换为 PDF 文件


尽管我在本教程中使用的是 Mozilla Firefox，但你也可以用任何 [可用于 Linux 的最佳浏览器](https://itsfoss.com/best-browsers-ubuntu-linux/) 做同样的事情。


![](/data/attachment/album/202110/28/111807iuvumpvtfgm5rrmr.png)


1、加载你想转换的网页。


2、在浏览器菜单中找到“**打印**”选项，或使用键盘快捷键 `Ctrl + P`。


3、默认情况下，它应该让你把它保存为 PDF。你需要点击“保存”，然后选择目的地并保存网页。


![Save webpage as PDF in Mozilla Firefox](/data/attachment/album/202110/28/111808uwjawr8u91ajfbo1.png)


这种简单方法的一个主要问题是，它包括页面上的所有元素。这可能包括评论、页脚等。你可以用一个 PDF 编辑器来删除部分内容，但这是一个额外的任务。


更好的选择是利用一个浏览器扩展，如 [Print Friendly](https://www.printfriendly.com/)。它允许你在下载 PDF 之前编辑和删除网页的部分内容。


### 方法 2：使用终端将网页转换为 PDF 或图片


你可能已经知道，你可以 [在 Linux 终端浏览互联网](https://itsfoss.com/terminal-web-browsers/)，甚至 [使用命令行下载文件](https://itsfoss.com/download-files-from-linux-terminal/)。这并不奇怪，因为你可以在终端中做更多的事情，包括将网页下载为 PDF。


一个灵巧的开源命令行工具 `wkhtmltopdf` 和 `wkhtmltoimage` 可以帮到你，让你把任何 HTML 网页转换成 PDF 或图像文件。


它使用 Qt WebKit 渲染引擎来完成这个任务。你可以浏览它的 [GitHub页面](https://github.com/wkhtmltopdf/wkhtmltopdf) 了解更多信息。


你应该能够从你的 Linux 发行版的默认仓库中安装它。对于基于 Ubuntu 的发行版，你可以输入以下命令：



```
sudo apt install wkhtmltopdf

```

无论你想把它转换为 PDF 还是图像文件，它的使用都是非常直接的：


![](/data/attachment/album/202110/28/111808nmympbkwrgl3lwzv.png)


要将一个网页转换成 PDF，请输入：



```
wkhtmltopdf URL/domain filename.pdf

```

比如，类似于这样：



```
wkhtmltopdf linuxmint.com mint.pdf

```

你可以选择使用 `https://linuxmint.com` 这样完整的 URL 或使用域名，如上面的例子所示。


默认情况下，生成的文件将保存在主目录下。


在转换网页时，你还可以得到一些好玩的选项。


例如，你可以**对 PDF 文件应用灰度过滤器**，在同一文件中**制作多个页面副本**，以及在转换过程中**排除**图像。


灰度过滤器不一定对每个网页都有效，但你可以用命令试试：



```
wkhtmltopdf -g google.com googlepage.pdf

```

要在同一个 PDF 文件中复制多个页面，命令是：



```
wkhtmltopdf --copies 2 linuxmint.com mint.pdf

```

而且，如果你想排除网页中的图像，只需输入：



```
wkhtmltopdf --no-images linuxmint.com mint.pdf

```

此外，如果你想把一个网页转换为图像，命令是这样的：



```
wkhtmltoimage linuxmint.com mint.png

```

注意，与使用浏览器的 GUI 方法不同，通过终端使用这些工具有其局限性。它似乎不能成功转换利用任何 `<iframe>` 代码片段的网页。


像我们的网站，甚至 DuckDuckGo 都没有转换为 PDF 或图像。然而，简单的 HTML 网站，如 [Linuxmint.com](http://Linuxmint.com)、[Ubuntu.com](http://Ubuntu.com)、[Google.com](http://Google.com) 则非常有效。


### 总结


使用浏览器将网页保存为 PDF 似乎是个好办法。但是，如果你想有更多的选择并通过终端，`wkhtmltopdf` 工具应该会派上用场。


你喜欢如何在 Linux 中把网页转换为 PDF？欢迎在评论中分享你的想法。




---


via: <https://itsfoss.com/convert-webpage-pdf-linux/>


作者：[Ankush Das](https://itsfoss.com/author/ankush/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


OK
Saving a webpage as a PDF comes in handy when you archive certain resources or use them for educational purposes.

But, how do you convert a webpage to PDF in Linux?

*You can either choose to go the easy way out using the web browser (GUI) on every Linux distribution or use the terminal to turn a webpage into a PDF file.*

Here, I shall mention both the methods to help you get the job done.

## Method 1: Converting a Webpage to PDF Using Web Browser

Even though I use Mozilla Firefox for this tutorial, you can do the same thing with any of the [best browsers available for Linux.](https://itsfoss.com/best-browsers-ubuntu-linux/)

![mozilla save webpage pdf](https://itsfoss.com/content/images/wordpress/2021/10/mozilla-save-webpage-pdf.png)

1. Load up the webpage you want to convert.

2. Head to the browser menu to find the “**Print**” option or use the keyboard shortcut “**Ctrl + P**.”

3. By default, it should let you save it as a PDF. You need to hit “Save,” and choose the destination and save the webpage.

![Save webpage as PDF in Mozilla Firefox](https://itsfoss.com/content/images/wordpress/2021/10/mozilla-firefox-print-pdf-1.png)

The one major problem with this simple approach is that it includes all the elements on the page. This may include comments, footer etc. You may use a PDF editor to remove parts of it but that’s an additional task.

*A better option is to utilize a browser extension like Print Friendly. It allows you to edit and remove parts of the webpage before downloading the PDF.*

## Method 2: Converting a Webpage to PDF or Images Using the Terminal

You probably already know that you can [browse internet in Linux terminal](https://itsfoss.com/terminal-web-browsers/) and even [download files using the command line](https://itsfoss.com/download-files-from-linux-terminal/). That’s not surprising considering you can do a lot more in the terminal, including downloading a webpage as PDF.

A nifty open-source command-line tools **wkhtmltopdf** and **wkhtmltoimage** come to the rescue that lets you convert any HTML webpage to a PDF or image file.

It utilizes the Qt WebKit rendering engine to get the task done. You can explore its [GitHub page](https://github.com/wkhtmltopdf/wkhtmltopdf) for more information.

You should be able to install it from the default repository of your Linux distribution. For Ubuntu-based distros, you can type in the command:

`sudo apt install wkhtmltopdf`


It is pretty straightforward to use no matter whether you want to convert it to a PDF or image file:

![htmltopdf mint](https://itsfoss.com/content/images/wordpress/2021/10/htmltopdf-mint.png)

To convert a webpage into a PDF, type in:

`wkhtmltopdf URL/domain filename.pdf`


As an example, here’s how it would look:

`wkhtmltopdf linuxmint.com mint.pdf`


You can choose to use the complete URL as “**https://linuxmint.com**” or use the domain name as shown in the example above.

The file generated will be saved in the home directory by default.

You also get a few exciting options when converting a webpage.

For instance, you can **apply a grayscale filter to the PDF file**, **make multiple copies of the page** in the same file, and **exclude images** during conversion.

The grayscale filter may not work on every webpage, but you can try that using the command:

`wkhtmltopdf -g google.com googlepage.pdf`


To make multiple copies of pages in the same PDF file, the command would be:

`wkhtmltopdf --copies 2 linuxmint.com mint.pdf`


And, if you want to exclude images from the web pages, just type:

`wkhtmltopdf --no-images linuxmint.com mint.pdf`


Additionally, if you want to convert a webpage as an image, the command would look like this:

`wkhtmltoimage linuxmint.com mint.png`


Note that unlike the GUI method using a browser, using these tools via the terminal has its limitation. It does not seem to convert web pages utilizing any <iframe> code snippets successfully.

Sites like ours and even DuckDuckGo didn’t convert to PDF or an image. However, simple HTML sites like Linuxmint.com, Ubuntu.com, Google.com, worked like charm.

## Wrapping Up

To get the best results, saving a webpage as a PDF using a browser seems to be the way to go. But, if you want more options and go through the terminal, the **wkhtmltopdf** utility should come in handy.

How do you prefer to convert web pages to PDF in Linux? Feel free to share your thoughts in the comments.