是否有一个工具可以将保存为单个 PDF 的书籍拆分成每章一个 PDF?

是否有一个工具可以将保存为单个 PDF 的书籍拆分成每章一个 PDF?

我有几本 PDF 格式的书,我想按章节拆分它们,以便在手机上更方便地阅读。是否有任何工具(或一系列工具)可以让我轻松地按章节将书拆分成不同的 PDF 文件?

答案1

这很难自动完成,因为没有标准PDF 文件中的章节标签。但是,如果您不介意手动操作,请记下每个章节的页面,然后使用pdftk选择页面并将其保存到新的 pdf 文件中。例如,如果第 2 章是第 23-45 页,请执行

pdftk A=input.pdf cat A23-45 output chapter_2.pdf

您需要先安装 pdftk:

sudo apt-get install pdftk

您也可以直接使用 ghostscript (已预装):

gs -sDEVICE=pdfwrite -dNOPAUSE -dBATCH -dSAFER -dFirstPage=23 -dLastPage=45 -sOutputFile=chapter_2.pdf input.pdf

转换为半自动运行的脚本非常容易。首先,创建一个输入文件;在每一行上,输入所需的输出 pdf 文件标题、起始页、结束页——如下所示:

chapter1 1 23
chapter2 24 56

使用文本编辑器将其保存到文件pdfchaps.in

现在,创建一个脚本——将以下内容保存到名为的文件中pdfchaps.sh

#!/bin/bash

function pdfextr() { 
  echo "Chapter $2"
  pdftk A=$1 cat A$3-$4 output $2.pdf 
}

chapters=$1
pdffile=$2

echo "Splitting pdf file $pdffile by chapters from $chapters"
cat $chapters | while read line ; do  pdfextr $pdffile $line ; done

使脚本可执行:

chmod a+x pdfchaps.sh

并运行它:

pdfchaps chaps.in mybook.pdf

答案2

您有多种选择:

1. 翻转

 sudo apt-get install flpsed

2.PDF

sudo apt-get install pdftk

3. PDF 编辑

sudo apt-get install pdfedit

4.使用 GIMP

安装克里塔使用以下命令

sudo apt-get install krita

打开 Gimp,然后打开要编辑的 PDF 文档。对于多页文档,在计算机上一次编辑一页会更方便。如果您选择多页,它们将在单独的窗口中打开。

对文档进行必要的更改。将文档另存为 Gimp XCF 文件(如果是多页文档,则必须保存多个不同的页面)。关闭文档,然后在 Krita 中打开生成的图像。

使用 Krita 打印为 PDF 转到文件>打印,然后选择打印为 PDF。在同一个对话框中,选择输出文档的目标文件夹和名称(例如 file1.pdf)。

5. PdfMod

6. Inkscape

开源矢量图形编辑器,功能类似于 Illustrator、CorelDraw 或 Xara X,使用 W3C 标准可缩放矢量图形 (SVG) 文件格式。Inkscape 支持许多高级 SVG 功能(标记、克隆、alpha 混合等),并且在设计精简的界面时非常谨慎。编辑节点、执行复杂路径操作、跟踪位图等都非常容易。我们还旨在通过使用开放、面向社区的开发来维护一个蓬勃发展的用户和开发者社区。

在 Ubuntu 中安装 inkscape

sudo apt-get install inkscape

7. PDF-Shuffler

PDF-Shuffler 是一个小型的 python-gtk 应用程序,它可以帮助用户使用交互式直观的图形界面合并或拆分 pdf 文档以及旋转、裁剪和重新排列页面。它是 python-pyPdf 的前端。

答案3

出于同样的原因,我花了几个小时寻找完美的工具,确实如此pdfsam安装 pdfsam是正确的做法。

按章节划分对我来说很有用,不需要手动选择页面,有一个提供的功能,您甚至可以选择“深度” - 例如在章节或小节级别。

我花了一些时间才发现:如何为输出文件指定章节名称,而不是常规命名(用户可定义的前缀 + 起始页码 + 原始文档名称)。经过几个小时的搜索,我找到了解决方案:可以使用“复杂前缀”,如所述这里。这解决了我所有的问题并且也应该对你有帮助。

答案4

您可以尝试 pdfsam(pdf-split-and-merge),但您必须手动选择每章的开头。

相关内容