779

你知道如何提取PDF文档的一部分并将其保存为PDF吗?在OSX上,使用Preview是非常简单的。我试过PDF编辑器和其他程序,但都没用。

我想要一个程序,我可以在其中选择我想要的部分,然后用一个简单的命令将其保存为PDF文件CMD公司+N个在OS X上,我希望提取的部分保存为PDF,而不是JPEG等格式。

0

21个答案21

重置为默认值
808

pdftk公司是一个有用的多平台工具(pdftk主页).

pdftk full-pdf.pdf cat 12-15输出outfile_p12-15.pdf

您传递主pdf的文件名,然后告诉它只包含某些页面(本例中为12-15页),并将其输出到新文件。

安装说明:

要安装快照版本,这是对旧版本PDFtk(由Scott Moser重新打包)的非正式重新打包,请访问这个链接或运行:

sudo快照安装pdftk

或者,您可以通过运行以下命令,将PDFtk的开源端口安装到Marc Vinyals的Java:

sudo apt安装pdftk-java

另一种选择是PDFtk Server,可从以下网站获得:https://www.pdflabs.com/tools/pdftk-server/。此版本免费供个人使用,但不是开源的。

15
  • 12
    如果我想提取第1-10、15和17页,我该如何编写命令?
    – 杰克88
    评论 2016年10月12日8:26
  • 71
    @帕特里克·李pdftk A=in.pdf类别A1-10 A15 A17输出.pdf
    – m8针
    评论 2016年10月28日12:06
  • 17
    请注意pdftk公司在Ubuntu 18.04中不可用。(请参见askubuntu.com/questions/1028522/…)
    – 烷基
    评论 2018年6月30日12:05
  • 21
    @alkamid it is:sudo快照安装pdftk 评论 2018年9月23日18:51
  • 43
    尽管pdftk公司当然是一个可以完成这项工作的工具,我建议不要这样做。这不是免费软件,而是一个笨重的共享软件。它还需要JVM。更合理的工具是qpdf格式,作为在另一个答案中建议.
    – 左转
    评论 2018年11月13日13:11
379

非常简单。使用默认的PDF阅读器,选择“打印到文件”,就这样!

打印菜单

然后:

设置新PDF

请注意,通过这种方式,文本将不再是可搜索的,而是将所有文本转换为图像:这就是“打印”的工作原理。

16
  • 43
    使用光束器文件、地图和任何其他不符合打印机页面格式的文档生成灾难性结果。 评论 2015年1月13日13:48
  • 27
    这可能导致文件比原始文档大得多。
    – 日期
    评论 2015年12月8日17:06
  • 16
    因此它不会“提取”页面范围。它从旧的pdf创建一个新的pdf,就像您使用的是高清打印机/扫描仪对一样。 评论 2016年8月11日9:36
  • 11
    适用于简单的情况,但在带有突出显示注释的文档中会出现不希望出现的结果:突出显示变为100%不透明并阻止文本。 评论 2016年10月16日20:30
  • 9
    也不保留超链接。
    – 左转
    评论 2018年11月13日13:13
291

QPDF公司非常棒。使用此方法从中提取第1页到第10页输入.pdf并将其另存为输出.pdf:

qpdf input.pdf--页数。1-10—输出.pdf

这将保留与该文件关联的所有元数据。

旧手册:

如果希望从infie.pdf中删除第1页到第5页,但希望删除其余元数据,则可以运行

qpdf--空--页面填充.pdf 1-5--输出.pdf

这里有一个链接到当前文档,提供更多页面选择示例。


您可以通过调用以下命令进行安装:

sudo apt-get安装qpdf

这是一个很好的PDF处理工具。它速度很快,依赖性很小。发件人QPDF的GitHub回购:

QPDF是一个命令行工具和C++库,它对PDF文件执行内容保护转换。它支持线性化、加密和许多其他功能。它还可以用于拆分和合并文件、创建PDF文件(但您必须自己提供所有内容)以及检查文件以进行研究或分析。

16
  • 4
    --pages标志允许您拼接多个PDF中的页面。请注意,可以使用以下命令避免重复名称.代替--pages选项中的输入文件:qpdf——第页。1-10——输入.pdf输出.pdf.
    – 巴特
    评论 2019年5月8日23:40
  • 12
    使用---第页。在Ubuntu 18.04上似乎不起作用。也许这是最近添加的? 评论 2019年6月25日6:26
  • 7
    当我只提取了几个页面时,为什么生成的PDF与源PDF的数据大小相同? 评论 2019年6月25日10:50
  • 6
    如果你想摘录第1-8页和第53-70页,那么qpdf——第页。1-8 . 53-70——输入.pdf输出.pdf 评论 2019年9月26日7:28
  • 13
    qpdf input.pdf--页数。1——输出.pdf不适合我。(版本8.0.2)。这就是对我有用的:qpdf input.pdf--页面输入.pdf 1--输出.pdf 评论 2020年4月29日17:27
105

页面范围-Nautilus脚本


概述

我根据链接到的教程@ThiagoPonte创建了一个稍微更高级的脚本

  • 它基于GUI,
  • 与文件名中的空格兼容,
  • 并基于三种不同的后端,能够保留原始文件的所有属性

截图

在此处输入图像描述

代码

#!/垃圾桶/垃圾桶##标题:PDF提取物##作者:(c)2013-2015 Glutanimate(https://github.com/Glutanimate网站)##版本:0.2##许可证:GNU GPL v3(http://www.gnu.org/licenses/gpl.html)# #概述:PDFextract是一个基于Ghostscript/qpdf/cpdf的简单PDF提取脚本。#它提供了一种从PDF文档中提取页面范围的简单方法#用作文件管理器脚本/插件(例如Nautilus脚本)。##功能:基于YAD的简单GUI,这是一个高级Zenity分叉。#-保留原始PDF文件的所有属性,不压缩#嵌入的图像比实际的要远。#-可以从三种不同的后端中选择:ghostscript、qpdf、cpdf##依赖项:ghostscript/qpdf/cpdf poppler-utils yad libnotify-bin#                         #您需要安装此脚本支持的三个后端中的至少一个。##-ghostscript、qpdf、poppler-utils和libnotify-bin可通过#标准Ubuntu存储库#-cpdf是一个商业CLI PDF工具包,可供个人免费使用。#可在此处下载:https://github.com/coherentgraphics/cpdf-binaries网站#-yad可以使用以下命令从webupd8 PPA安装:#sudo add-apt-repository ppa:webupd8team/y-ppa-manager&&apt-get更新&&apd-get安装yad##注:下面是每个后端的优缺点的快速比较:##speed元数据保存内容保存许可证#ghostscript:--+++开源#cpdf:-+++专有#qpdf:++++开源##结果可能会因文档和相关工具的版本而异。##安装:https://askubuntu.com/a/236415##此脚本的灵感来自Kurt Pfeifle的PDF提取脚本# (http://www.linuxjournal.com/content/tech-tip-extract-pages-pdf)##最初发布在askubuntu# (https://askubuntu.com/a/282453)#变量DOCUMENT=“$1”BACKENDSECTION=“^qpdf!重影脚本!cpdf”#功能检查输入(){如果[[-z“$1”]];然后通知“错误:未选择输入文件。”出口1elif[[!“$(file-ib”$1“)”==*application/pdf*]];然后通知“错误:不是有效的PDF文件。”出口1fi(菲涅耳)}check_deps(){对于“$@”中的i;键入“$i”>/dev/null 2>&1如果[[“$?”!=“0”]];然后MissingDeps+=“$i”fi(菲涅耳)完成}ghostscriptextract(){gs-dFirstPage=“$STARTPAGE”-dLastPage=“$STOPPAGE”-sOutputFile=“$OUTFILE”-dSAFER-dNOPAUSE-dBATCH-dPDFSETTING=/default-sDEVICE=pdfwrite-dCompressFonts=true-c\“.setpdfwrite<</EncodeColorImages true/DownsampleMonoImages false/SubsetFonts true/ASCII85EncodePages false/DefaultRenderingIntent/Default/ColorConversionStrategy\/LeaveColorUnchanged/MonoImageDownsampleThreshold 1.5/ColorACSImageDict<</VSamples[1 11 1]/HSamples[11 1 1]/QFactor 0.4/Blend 1>>/GrayACSImage Dict\<</VSamples[1 1 1 1]/HSamples[11 1 1]/QFactor 0.4/Blend 1>>/PreserveOverprintSettings false/MonoImageResolution 300/MonoImageFilter/FlateEncode\/GrayImageResolution 300/LockDistillerParams false/EncodeGrayImages true/MaxSubsetPCT 100/GrayImageDict<</VSamples[1 1 1]/HSamples[11 1 1]/GFactor\0.4/Blend 1>>/ColorImageFilter/FlateEncode/EmbedAllFonts true/UCRandBGInfo/Remove/AutoRotatePages/PageByPage/ColorImageResolution 300/ColorMapeDict\/VSamples[1 1 1 1]/HSamples[11 1 1]/QFactor 0.4/Blend 1>>/CompatibilityLevel 1.7/EncodeMonoImages true/GrayImageDownsampleThreshold 1.5\/AutoFilterGrayImages false/GayImageFilter/FlateEncode/DownsampleGrayImage false/AutoFilterColorImages false/DownsampleColorImage false/CompressPages true\/ColorImageDownsampleThreshold 1.5/PreserveHalftoneInfo false>>setditerparams“-f”$DOCUMENT“}cpdfextract(){cpdf“$DOCUMENT”“$STARTPAGE-$STOPPAGE”-o“$OUTFILE”}qpdf提取(){qpdf--线性化“$DOCUMENT”--页面“$DOCUMENT”“$STARTPAGE-$STOPPAGE”--“$OUTFILE”echo“$OUTFILE”return 0#即使是良性的qpdf警告也会产生错误代码,因此我们将其禁止显示}通知(){echo“$1”notify-send-i application-pdf“PDFextract”“$1”}对话框_警告(){echo“$1”yad--中心--图像对话框警告\--title“PDF提取警告”\--文本“$1”\--button=“重试:0”\--button=“退出:1”[[“$?”!=“0”]]&&退出0}对话设置(){PAGECOUNT=$(pdfinfo“$DOCUMENT”|grep Pages|sed's/[^0-9]*//')#确定页数设置=($(\yad--形状--宽度300--中心\--window-icon application-pdf--图像应用程序-pdf\--separator=“”--title=“PDF提取”\--text“请选择页面范围和后端”\--field=“Start:NUM”1[!1..$PAGECOUNT[!1]]--field=”End:NUM“$PAGECOUNT[!1.$PAGECOMNT[!1]]\--field=“后端”:CB“$BACKENDSELECTION”\--button=“gtk-ok:0”--button=“gtk-cancel:1”\))SETTINGSRET=“$?”[[“$SETTINGSRET”!=“0”]]&&退出1STARTPAGE=$(printf%.0f${SETTINGS[0]})#舍入数字并将数组存储在变量中STOPPAGE=$(打印%.0f${设置[1]})后端=“${SETTINGS[2]”抽汽器=“${BACKEND}提取"check_deps“$BACKEND”如果[[-n“$MissingDeps”]];然后dialog_warning“错误,缺少依赖项:$MissingDeps”取消设置MissingDeps对话框_设置返回fi(菲涅耳)如果[[“$STARTPAGE”-gt“$STOPPAGE”]];然后dialog_warning“<b>开始页面高于停止页面。</b>”对话框_设置返回fi(菲涅耳)OUTFILE=“${DOCUMENT%.pdf}(p${开始}-p${STOPPAGE}).pdf“}extract_pages(){$抽取器抽取器=“$?”如果[[“$EXTRACTORRET”=“0”]];然后通知“页面$STARTPAGE至$STOPPAGE成功提取。”其他的notify“出现错误。请检查CLI输出。”fi(菲涅耳)}#主要check_input“1美元”对话框_设置提取_页面

安装

请遵循Nautilus脚本的通用安装说明。请务必仔细阅读脚本标题,因为它有助于澄清脚本的安装和使用。


部分页面-PDF排列


概述

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

安装

sudo apt-get安装pdfshuffler

用法

PDF Arranger可以裁剪和删除单个PDF页面。您可以使用它从文档甚至部分页面中使用裁剪功能提取页面范围:

在此处输入图像描述


页面元素-Inkscape


概述

Inkscape是一个功能强大的开源矢量图形编辑器。它支持多种不同的格式,包括PDF文件。您可以使用它从PDF文件中提取、修改和保存页面元素。

安装

sudo apt-get安装inkscape

用法

1.)使用Inkscape打开您选择的PDF文件。将出现导入对话框。选择要从中提取元素的页面。保持其他设置不变:

在此处输入图像描述

2.)在Inkscape中,单击并拖动以选择要提取的元素:

在此处输入图像描述

3.)使用反转选择!并使用删除选定对象删除:

在此处输入图像描述

4.)通过访问文档属性与对话CTRL公司+轮班+D类并选择“使文档适合图像”:

在此处输入图像描述

5.)将文档另存为PDF文件文件-->另存为对话框:

6.)如果裁剪的文档中有位图/光栅图像,您可以在下面显示的对话框中设置其DPI:

在此处输入图像描述

7.)如果您遵循了所有步骤,您将生成一个真正的PDF文件,该文件只包含您选择的对象:

在此处输入图像描述

6
  • 1
    非常努力。谢谢!我理解不允许选择部分一页,但只有整页。我说得对吗? 评论 2013年4月17日23:36
  • 2
    @卡奈迪尔:没错。我认为幽灵脚本无法做到这一点。但是可能还有其他解决方案可以通过编程实现这一点目前,我已经使用PDF-shuffler用另一种解决方案(有点老套)编辑了我的答案。 评论 2013年4月18日5:11
  • pdf缓冲装置如果要提取PDF页面的一部分,则这是不够的。页面的原始PDF数据仍保留在文件中。如果要从PDF文件中删除敏感数据,请不要使用此方法。
    – 罗布·W
    评论 2015年11月7日11:48
  • 5
    pdf缓冲装置现在被称为脉冲测距仪.
    – 阿莫
    评论 2019年9月11日15:20
  • 2
    我希望你能将这三个答案分开发布,这样我们就可以分别对每个答案进行评论,并分别对它们进行投票。
    – 弗利姆
    评论 2022年1月7日8:46
70

将其保存为shell脚本,如pdfextractor.sh:

#!/垃圾桶/垃圾桶#此函数使用3个参数:#$1是要提取的范围的第一页#$2是要提取的范围的最后一页#$3是输入文件#输出文件将命名为“inputfile_pXX-pYY.pdf”gs-sDEVICE=pdfwrite-dNOPAUSE-dBATCH-dSAFER\-dFirstPage=“${1}”\-dLastPage=“${2}”\-sOutputFile=“${3%.pdf}_p${1} -第页${2}.pdf“\"${3}"

要运行,请键入:

./pdfextractor.sh 4 20我的文件.pdf
  1. 4指的是它将启动新pdf的页面。

  2. 20指pdf结尾的页面。

  3. 我的文件.pdf是要提取部件的pdf文件。

输出将是我的文件_p4_p20.pdf在同一目录中的原始pdf文件。

所有这些和更多信息请点击此处:技术提示

5
  • 32
    让我们保持简单:gs-sDEVICE=pdfwrite-dNOPAUSE-dBATCH-dFirstPage=1-dLastPage=10-sOutputFile=output.pdf输入.pdf
    – Ho1公司
    评论 2015年9月9日7:14
  • 1
    @Ho1请写下来作为一个新的答案,它真的很有用! 评论 2018年10月3日18:36
  • 1
    这是最便携的答案,因为ghostscript很可能安装在几乎任何地方。
    – 卡利莫
    评论 2019年6月13日15:43
  • 1
    略为熟悉,文件大小比qpdf提供的小得多!pdftk也无法通过Homebrew在我的Mac上使用,我听说它也很慢。
    – 脓毒症
    评论 2019年7月19日21:02
  • 非常感谢! 评论 2021年9月30日19:43
54

在安装TeX配电的任何系统中:

pdfjam<输入文件><页面范围>-o<输出文件>

例如:

pdfjam原始.pdf 5-10-o输出.pdf

请参见https://tex.stackexchange.com/a/79626/8666

6
  • 1
    这是唯一对我有用的。 评论 2018年10月21日3:12
  • 2
    完全弄乱了我的风景PDF。
    – 都灵
    评论 2020年3月10日21:10
  • 这曾经对我来说很适合使用横向PDF,但现在它把它搞砸了。
    – 凯文
    评论 2020年5月14日3:08
  • 2
    pdfjam--横向。。。解决景观问题 评论 2020年8月20日13:01
  • 1
    我尝试的唯一解决方案是接受多个范围,例如。pdfjam原始.pdf 2-4,43,49-64-o选择.pdf. 评论 2023年5月1日22:32
47

有一个名为pdf分离.

从文档中:

pdf分离样本.pdf样本-%d.pdf从sample.pdf中提取所有页面,如果sample-pdf有3个页面生产示例-1.pdf、示例-2.pdf和示例-3.pdf

或者,要从文件sample.pdf中选择一个页面(在本例中为第一页):

pdf分离-f 1-l 1样本.pdf样本-1.pdf
7
  • 很棒的工具!比…快得多pdftk公司
    – 安瓦尔
    评论 2015年4月8日5:57
  • 4
    很好,但它只限于一页,如果你想要更多,你会得到单独的页面。
    – Ho1公司
    评论 2015年9月9日7:19
  • 当然,尽管可以使用pdfunite按照上述命令生成单个文档。 评论 2015年9月9日15:22
  • 4
    如果你有一个巨大的文档并且需要拆分所有页面,那么它真的很快而且很有用。 评论 2016年4月27日10:32
  • 1
    这不是最好的方法。花了3m15秒pdf分离+辉长岩页面范围(1m11s用于和0m8sqpdf格式),并且还创建了一个更大的文件(由于每个单独页面的元数据)-62 MB与37 MB原始(对于530页中的第81页到第80页),而对于正确地说,33 MB用于qpdf格式对于同一页面范围。。。使用qpdf格式相反! 评论 2020年5月26日15:55
19

pdftk公司(sudo apt-get安装pdftk)对于PDF操作来说,也是一个很棒的命令行。以下是一些例子pdftk公司可以执行以下操作:

整理扫描的页面pdftk A=even.pdf B=odd.pdf洗牌A B输出整理.pdf或者如果odd.pdf的顺序相反:pdftk A=even.pdf B=odd.pdf shuffle A Bend-1 output colled.pdf加入in1.pdf和in2.pdf成为一个新的pdf,out1.pdfpdftk in1.pdf in2.pdf cat输出out1.pdf或(使用手柄):pdftk A=in1.pdf B=in2.pdf cat A B输出1.pdf或(使用通配符):pdftk*.pdf cat输出组合.pdf从in1.pdf中删除第13页以创建out1.pdfpdftk in.pdf cat 1-12 14端输出out1.pdf或:pdftk A=in1.pdf类别A1-12 A14结束输出1.pdf将单个PDF文档突发成多页,并将其数据转储到文档数据.txtpdftk in.pdf突发将第一个PDF页面顺时针旋转90度pdftk输入.pdf cat 1东部2端输出.pdf将整个PDF文档旋转180度pdftk输入.pdf猫1-endsouth输出.pdf

在你的情况下,我会:

pdftk A=输入.pdf cat A输出.pdf
2
13

我也在试着这么做。你所要做的就是:

  1. 安装pdftk公司:

    sudo apt-get安装pdftk
  2. 如果要提取随机页面:

    pdftk myoldfile.pdf cat 1 2 4 5输出mynewfile.pdf
  3. 如果要提取范围:

    pdftk myoldfile.pdf猫1-2 4-5输出mynewfile.pdf

请检查来源了解更多信息。

2
8

如果您希望使用内置bash命令,那么pdf分离辉长岩是给你的。

pdf分离样本.pdf样本-%d.pdf#ls;示例.pdf示例-1.pdf样例-2.pdf样本-3.pdf sample-4.pdfpdfunite sample-2.pdf sample-3.pdf输出.pdf#现在可以使用output.pdf
2
  • 1
    pdf分离不是“内置bash命令”。尝试文件$(pdf分离的文件). 评论 2022年8月1日21:07
  • pdf分离+辉长岩这些部件创建了一个比原始文件大3倍的输出文件。 评论 2022年8月1日21:15
8

你试过PDF Mod吗?

例如,您可以。。提取页面并将其保存为pdf。

描述:

PDF Mod是一个用于修改PDF文档的简单工具。它可以旋转、提取、移除
并通过拖放对页面重新排序。可以通过拖动合并多个文档
然后下降。您还可以编辑PDF的标题、主题、作者和关键字
使用PDF Mod。

sudo apt安装pdfmod

截图

希望这会有用。

规则。

5
  • 是的,我确实尝试过,但它不允许我将页面的一部分保存为pdf。。。除非我看不到选项。它允许我从文档中提取整个页面,但这不是我想要的 评论 2012年11月26日2:21
  • 我经常使用它,很棒的工具!但我有一份大约170页的文档,pdfmod无法处理。 评论 2016年10月16日20:54
  • 真 的。这是令人惊讶的平滑。把我512页的真书扔到它上面(50MiB),它……很快。UI是轻而易举的。对于像我这样的CLI迷来说,需要一定程度的GUI才能说服我,但这就够了!
    – 塞希
    评论 2017年10月12日6:50
  • PDF Mod在Kubuntu 18中运行错误 评论 2018年10月3日18:37
  • 无法打开TurboTax生成的PDF。 评论 2022年9月1日22:57
7

共同工具与mupdf一起提供的,可以做很多简单的PDF处理工作,但其语法比qpdf格式(以及其他一些答案)。此外,在大型PDF上似乎更快:

#摘录页面范围20-40mutool清洁in.pdf out.pdf 20-40#从整个pdf中摘录mutool clean in.pdf out.pdf“1,3-4,74-92”
2
  • 生成更大的文件 评论 2021年3月11日17:34
  • 虽然有人可能会问,如果清洁的是用于提取页面的命令的直观名称共同工具可以说对于这个用例来说更简洁。与…对比qpdf格式然而共同工具(正如pdftk公司cpdf公司)会保留书页标签(通常用于正面标有拉丁数字的书籍)。 评论 5月2日13:11
6

事实证明,我可以做到imagemagick公司。如果没有,只需使用以下工具进行安装:

sudo apt-get安装imagemagick

附注1:我已经用一页pdf尝试过了(我正在学习使用imagemagick公司,所以我不想再麻烦了)。我不知道它是否/如何处理多个页面,但您可以使用pdftk公司:

pdftk A=myfile.pdf猫A1输出page1.pdf

其中您指示要拆分的页码(在上面的示例中,第1页选择第一页)。

附注2:使用此过程生成的图像将是光栅。


使用命令打开pdf显示,是imagemagick公司一套:

显示文件.pdf

我的看起来像这样:

imagemagik显示pdf
单击图像以查看完整分辨率版本

现在你点击窗口,一个菜单就会弹出到旁边。在那里,选择转换|作物.

imagemagick变换>裁剪菜单

回到主窗口,只需拖动指针即可选择要裁剪的区域(经典的角到角选择)。

作物面积的选择
选择时请注意图像周围的手形指针

在继续下一步之前,可以细化此选择。

完成后,请注意左上角出现的小矩形(参见上图)。它显示了首先选择的区域的尺寸(例如。281x218像素)然后是第一个角的坐标(例如。+256+215).

写下所选区域的尺寸;保存裁剪后的图像时需要它。

现在,回到弹出菜单(现在是特定的“裁剪”菜单),单击按钮作物.

imagemagick裁剪菜单

最后,对裁剪结果感到满意后,单击菜单文件|保存

导航到要保存裁剪的pdf的文件夹,键入名称,单击按钮格式,在“选择图像格式类型”窗口中选择PDF格式然后单击按钮选择。返回“浏览并选择文件”窗口,单击按钮保存.

imagemagick另存为pdf

保存之前,imagemagick公司将要求“选择页面几何图形”。在这里,您键入裁剪图像的尺寸,使用简单的字母“x”分隔宽度和高度。

imagemagick选择页面几何图形

现在,您可以从命令行(命令是转换带选项-作物)--当然速度更快,但您必须事先知道要提取的图像的坐标。检查人类皈依者他们网页上的一个例子.

  • 不知道imagemagick的GUI。看起来很有趣。然而,如果我错了,请纠正我,但我认为imagemagick无法处理矢量化图像。因此,您导出的可能只是光栅/位图图像。在这种情况下,此方法与拍摄文档区域的屏幕快照相同。 评论 2013年4月19日8:23
  • 1
    的确,imagemagick公司仅适用于光栅图像,并且显示只是套件的一个命令。有很多接口用于imagemagick公司--查看他们的网页。对于矢量图像,我认为最好的解决方案是使用Inkscape的方法。 评论 2013年4月19日15:00
  • 2
    您可能想在答案的顶部添加一个免责声明,以警告这将从矢量图形转换为光栅图形。这一特性使其成为一种根本不同的方法。 评论 2014年7月9日15:10
5

在Ubuntu 20.04上测试pdftk—版本3.0.9自2018年5月11日起(日期显示在手动pdftk).

如果使用pdftk公司,以下是如何为多组页面设置格式:

pdftk in.pdf cat 13 18 33-36 39-41 52输出.pdf

这将捕获这些页面组,包括在内。

安装和/或更新pdftk公司:

sudo apt更新sudo apt安装pdftk

相关:

  1. [我的答案]如何旋转PDF页面:https://unix.stackexchange.com/questions/394065/command-line-how-do-you-rotate-a-pdf-file-90-degrees/634882#634882

PDF拆分和合并对于此操作和其他PDF操作非常有用。

从下载在这里

  • 1
    您可以从上面的链接下载最新版本,但如果您喜欢软件中心的便利性,也可以从那里(或从终端,通过sudo apt-get安装pdfsam). 然而,Ubuntu中的版本已经过时了,因为它仍然是1.1.4版本而sourceforge版本已经是2.2.2。 评论 2014年2月14日18:00
  • 最新的3.x(当前为3.1.0)具有.deb包它可以安装在Ubuntu上,并且有一个Extract Pages模块,可以按照OP的要求执行 评论 2016年8月6日8:25
  • 1
    @安德烈亚·瓦康迪奥·布拉沃,感谢你出色的编辑!你正在帮助确保互联网安全。我发现sourceforge.net上旧链接中的文件中嵌入了垃圾。SourceForge网站的新所有者表示,他们将停止这样做,但显然他们撒了谎。
    – 卡雷尔
    评论 2016年8月6日8:41

不幸的是,Ubuntu没有提供直接执行此操作的命令。

但你可以使用pdf分离辉长岩联合(Ubuntu默认提供这两种功能)

所以如果你想提取页面3265属于源文件.pdf在名为摘录.pdf,可以键入以下命令:

mkdir tmppdfdirpdf分隔-f 32-l 65源文件.pdf tmppdfdir/page-%d.pdfpdfunite tmppdfdir/page*.pdf摘录.pdfrm-射频tmppdfdir/

警告:确保tmppdf目录以前不存在!

2
  • 此答案重复这个7个多月前提供。对于这个问题,我们已经有太多的答案了。请考虑删除此项。谢谢您。 评论 2022年9月1日23:03
  • 嘿@Dan这不是一个重复,因为你所说的答案只适用于从5页文档中提取2页。我的答案是33页,无法使用。我的是通用的,另一个不是。请记住,有些文档的页数超过500页。
    – 厄运
    评论 2022年9月2日9:20
2

LibreOffice抽奖

办公套件能够编辑PDF并创建新的页面,这样您就可以用鼠标轻松、交互式地选择页面范围。

通过这种方式,您可以轻松地直观地检查想要的页面,然后立即移动它们,而无需记下页码并转到命令行。

另一个优点是,几乎每个Linux桌面用户的计算机上都已经安装了基本的LibreOffice软件包,但如果出于某种原因没有安装:

sudo apt安装libreoffice

然后,只需打开PDF,例如从CLI:

雷蒙德图书馆.pdf

或者从GUI中打开LibreOffice,然后选择File>open。

打开后,您将看到:

在此处输入图像描述

现在要拆分文档:

  1. 从左侧的页面索引中选择页面范围。您可以使用常用的范围快捷方式:

    • 范围端点的偏移
    • Ctrl键选择或取消选择单个项目
  2. Ctrl+C或右键单击>复制

  3. Ctrl+N或“文件”>“新建”以创建新文档

  4. 在新文档上按Ctrl+V从旧文档粘贴

  5. 否设置为“是否要缩放复制的对象以适应新的页面大小?”

  6. Shift+Delete或右键单击>Delete Page(删除页面)到新文档中预先存在的初始空白页面

  7. 文件>导出为>直接导出为PDF。

    如果您经常这样做,可能需要在“工具”>“自定义”>“键盘”下为此选项指定键盘快捷方式。

上述示例中显示的PDF为:http://users.ece.utexas.edu/~perry/education/382v-s08/papers/raymond.pdf这是埃里克·雷蒙德(Eric S.Raymond)对《大教堂和集市》(The Cathedral and The Bazaar)的渲染。

在Ubuntu 22.04上测试,LibreOffice Draw 7.3.4。

2
  • 鉴于我在LibreOffice中发现的错误包括Draw对PDF的处理,我不会用它来处理任何重要的PDF。 评论 2022年9月1日23:08
  • 尝试过了,结果很差。格式不是100%正确,“it”和“ti”的序列显示为空白。尽管如此,还是很容易尝试。。。
    – 氙的
    评论 2023年11月20日21:23
2

如果要以所见即所得的方式提取页面,那么脉冲测距仪提供了一个漂亮而简单的GUI。它还可以加入PDF,您可以旋转或裁剪页面。

PSF安排行

TurboTax文件做得很好pdfmod公司无法打开.

唯一(微小)的缺点是它无法导出一些元数据,目录也丢失了,但我验证了导出的选择包含了我选择的所有页面,所以该工具可以正常工作。

1

Apache PDFBox是用于处理PDF文档的开源Java工具。它附带了一个命令行工具,可以从pdf中分割页面,以及其他许多功能(请参阅此处的手册).

要使用它,只需安装pdfbox-第2页。?。?。罐子并执行如下命令:

java-jar pdfbox-app-2.0.20.jar PDFSplit-startPage 1-endPage 10-outputPrefix ch1 book.pdf
1
  • 这太棒了
    – 穆尔瓦
    评论 2023年2月22日8:30
1

ThiagoPonte的Ghostscript答案因其可移植性而非常出色,但它没有解释如何使用不连续的页面列表,如2、6、7、8、9、11。这是可能的-sPageList(页面列表):

gs-sDEVICE=pdfwrite-dNOPAUSE-dBATCH-sPageList=2,6-9,11-sOutputFile=out.pdf in.pdf

然而,我无法在旧版本的Ghostscript上运行,在这种情况下,受堆栈溢出问题,我创建了这个shell脚本,它只依赖于-d第一页-d最后一页:

#!/垃圾箱/垃圾箱-f如果[“$#”!=2]&[“$”!=3];然后>&2 echo“用法:$0 pagelist infile[outfile]”出口11fi(菲涅耳)范围=1美元填充=2美元outfile=${3-“${2%pdf}”out.pdf}套--IFS=,对于$range中的i;设置--“$@”“-dFirstPage=${i%-*}”“-dLastPage=$}i#*-}”完成gs-sOutputFile=“$outfile”-sDEVICE=pdfwrite-dNOPAUSE-dBATCH“$@”

您可以将其保存在PATH目录中,例如/usr/local/bin/,使用使其可执行chmod+x脚本名然后打电话

脚本名2,6-9,11 in.pdf out.pdf
0

我已经开始制作一个工具为常见操作提供简化的界面。

您可以像这样分割PDF的一个子集:

$npm安装@mountbuild/mouse-g$鼠标切片输入.pdf-s 15-e 25-o输出.pdf

这将为介于15和25之间的页面创建一个新的PDF。

如果没有其他内容,请查看源代码,看看如何用JavaScript编写自己的脚本。

你必须登录来回答这个问题。

不是你想要的答案吗?浏览标记的其他问题.