mirror of
https://github.com/LCTT/TranslateProject.git
synced 2024-12-26 21:30:55 +08:00
PRF
@geekpi
This commit is contained in:
parent
66a9cc3a17
commit
b6e0efda28
@ -3,16 +3,18 @@
|
|||||||
[#]: author: (Moshe Zadka https://opensource.com/users/moshez)
|
[#]: author: (Moshe Zadka https://opensource.com/users/moshez)
|
||||||
[#]: collector: (lujun9972)
|
[#]: collector: (lujun9972)
|
||||||
[#]: translator: (geekpi)
|
[#]: translator: (geekpi)
|
||||||
[#]: reviewer: ( )
|
[#]: reviewer: (wxy)
|
||||||
[#]: publisher: ( )
|
[#]: publisher: ( )
|
||||||
[#]: url: ( )
|
[#]: url: ( )
|
||||||
|
|
||||||
在 Linux 命令行上编辑 PDF
|
在 Linux 命令行上编辑 PDF
|
||||||
======
|
======
|
||||||
使用 qpdf 和 poppler-utils 来分割、修改和合并 PDF 文件。
|
|
||||||
![Text editor on a browser, in blue][1]
|
|
||||||
|
|
||||||
你收到的许多文件都是 PDF 格式的。有时这些 PDF 需要被处理。例如,可能需要删除或添加页面,或者你可能需要签署或修改一个特定的页面。
|
> 使用 qpdf 和 poppler-utils 来分割、修改和合并 PDF 文件。
|
||||||
|
|
||||||
|
![](https://img.linux.net.cn/data/attachment/album/202107/15/093249xh6dmg846py8bgbc.jpg)
|
||||||
|
|
||||||
|
你收到的许多文件都是 PDF 格式的。有时这些 PDF 需要进行处理。例如,可能需要删除或添加页面,或者你可能需要签署或修改一个特定的页面。
|
||||||
|
|
||||||
不管是好是坏,这就是我们所处的现实。
|
不管是好是坏,这就是我们所处的现实。
|
||||||
|
|
||||||
@ -23,7 +25,7 @@
|
|||||||
在 Linux 上,你可以用你的包管理器(如 `apt` 或 `dnf`)来安装 `qpdf` 和 `poppler-utils`。比如在 Fedora 上:
|
在 Linux 上,你可以用你的包管理器(如 `apt` 或 `dnf`)来安装 `qpdf` 和 `poppler-utils`。比如在 Fedora 上:
|
||||||
|
|
||||||
```
|
```
|
||||||
`$ sudo dnf install qpdf poppler-utils`
|
$ sudo dnf install qpdf poppler-utils
|
||||||
```
|
```
|
||||||
|
|
||||||
在 macOS 上,使用 [MacPorts][2] 或 [Homebrew][3]。在 Windows 上,使用 [Chocolatey][4]。
|
在 macOS 上,使用 [MacPorts][2] 或 [Homebrew][3]。在 Windows 上,使用 [Chocolatey][4]。
|
||||||
@ -33,31 +35,27 @@
|
|||||||
`qpdf` 命令可以做很多事情,但我主要用它来:
|
`qpdf` 命令可以做很多事情,但我主要用它来:
|
||||||
|
|
||||||
1. 将一个 PDF 分割成不同的页面
|
1. 将一个 PDF 分割成不同的页面
|
||||||
2. 将 PDF 文件合并成一个文件
|
2. 将多个 PDF 文件合并成一个文件
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
要将一个 PDF 分割成不同的页面:
|
要将一个 PDF 分割成不同的页面:
|
||||||
|
|
||||||
|
|
||||||
```
|
```
|
||||||
`qpdf --split-pages original.pdf split.pdf`
|
qpdf --split-pages original.pdf split.pdf
|
||||||
```
|
```
|
||||||
|
|
||||||
这就会生成像 `split-01.pdf`、`split-02.pdf` 这样的文件。每个文件都是一个单页的 PDF 文件。
|
这就会生成像 `split-01.pdf`、`split-02.pdf` 这样的文件。每个文件都是一个单页的 PDF 文件。
|
||||||
|
|
||||||
合并文件比较微妙:
|
合并文件比较微妙:
|
||||||
|
|
||||||
|
|
||||||
```
|
```
|
||||||
`qpdf --empty concatenated.pdf --pages split-*.pdf --`
|
qpdf --empty concatenated.pdf --pages split-*.pdf --
|
||||||
```
|
```
|
||||||
|
|
||||||
这就是 `qpdf` 默认的做法。`--empty` 选项告诉 qpdf 从一个空文件开始。结尾处的两个破折号(`--`)表示没有更多的文件需要处理。这是一个参数反映内部模型的例子,而不是人们使用它的目的,但至少它能运行并产生有效的 PDF!
|
这就是 `qpdf` 默认的做法。`--empty` 选项告诉 qpdf 从一个空文件开始。结尾处的两个破折号(`--`)表示没有更多的文件需要处理。这是一个参数反映内部模型的例子,而不是人们使用它的目的,但至少它能运行并产生有效的 PDF!
|
||||||
|
|
||||||
### poppler-utils
|
### poppler-utils
|
||||||
|
|
||||||
这个软件包包含几个工具,但我用得最多的是 [pdftoppm][5],它把 PDF 文件转换为可移植的像素图(`ppm`)文件。我通常在用 `qpdf`分割页面后使用它,并需要将特定页面转换为我可以修改的图像。`ppm` 格式并不为人所知,但重要的是大多数图像处理方法,包括 [ImageMagick][6]、[Pillow][7] 等,都可以使用它。这些工具中的大多数也可以将文件保存为 PDF。
|
这个软件包包含几个工具,但我用得最多的是 [pdftoppm][5],它把 PDF 文件转换为可移植的像素图(`ppm`)文件。我通常在用 `qpdf` 分割页面后使用它,并需要将特定页面转换为我可以修改的图像。`ppm` 格式并不为人所知,但重要的是大多数图像处理方法,包括 [ImageMagick][6]、[Pillow][7] 等,都可以使用它。这些工具中的大多数也可以将文件保存为 PDF。
|
||||||
|
|
||||||
### 工作流程
|
### 工作流程
|
||||||
|
|
||||||
@ -68,11 +66,9 @@
|
|||||||
* 根据需要修改图像,并将其保存为 PDF。
|
* 根据需要修改图像,并将其保存为 PDF。
|
||||||
* 使用 `qpdf` 将各页合并成一个 PDF。
|
* 使用 `qpdf` 将各页合并成一个 PDF。
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### 其他工具
|
### 其他工具
|
||||||
|
|
||||||
有许多很好的开源命令来处理 PDF,无论你是[缩小它们][8]、[从文本文件创建它们][9]、[转换文档][10],还是尽力[完全避免它们][11]。你最喜欢的开源 PDF 工具是什么?请在评论中分享它们。
|
有许多很好的开源命令来处理 PDF,无论你是 [缩小它们][8]、[从文本文件创建它们][9]、[转换文档][10],还是尽量 [完全避免它们][11]。你最喜欢的开源 PDF 工具是什么?请在评论中分享它们。
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
@ -81,7 +77,7 @@ via: https://opensource.com/article/21/7/qpdf-command-line
|
|||||||
作者:[Moshe Zadka][a]
|
作者:[Moshe Zadka][a]
|
||||||
选题:[lujun9972][b]
|
选题:[lujun9972][b]
|
||||||
译者:[geekpi](https://github.com/geekpi)
|
译者:[geekpi](https://github.com/geekpi)
|
||||||
校对:[校对者ID](https://github.com/校对者ID)
|
校对:[wxy](https://github.com/wxy)
|
||||||
|
|
||||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user