您是否知道如何提取PDF文档的一部分并将其另存为PDF?
在OS X上,通过使用Preview绝对是微不足道的。我尝试了PDF编辑器和其他程序,但无济于事。
我想要一个程序,在该程序中选择所需的部分,然后使用简单的命令(如OS X)将其保存为PDF文件,例如OSX。希望将提取的部分另存为PDF而不是JPEG等。

评论

仓库中的pdfshuffler。

这是使用pdfseparate的方法。

#1 楼

pdftk是用于该作业的有用的多平台工具(pdftk主页)。

pdftk full-pdf.pdf cat 12-15 output outfile_p12-15.pdf


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

评论


如果要提取第1-10、15和17页,该如何编写命令?

–李小龙
16-10-12在8:26

@PatrickLi pdftk A = in.pdf cat A1-10 A15 A17输出out.pdf

–m8mble
16-10-28在12:06

请注意,pdftk在Ubuntu 18.04中不可用。 (请参阅askubuntu.com/questions/1028522/…)

–碱
18年6月30日在12:05

@alkamid它是:sudo snap install pdftk

– Qubix
18/09/23在18:51

尽管pdftk当然是可以完成这项工作的工具,但我还是建议不要这样做。这不是免费软件,而是笨拙的共享软件。它还需要JVM。如另一个答案所示,更合理的工具是qpdf。

–leftaround关于
18年11月13日在13:11

#2 楼

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



然后:



评论


使用投影仪文件,地图和任何其他与打印机页面格式不符的文档产生灾难性的结果。

–路易斯·德·索萨(Luísde Sousa)
15年1月13日在13:48



这可能导致文件的大小比原始文档大得多。

– dat
2015年12月8日在17:06

因此它不会“提取”页面范围。它会根据旧的pdf文件创建新的pdf文件,就像您使用的是高清打印机/扫描仪对一样。

–西尔维努尔格
16年8月11日在9:36

适用于简单的情况,但带有突出显示注释的文档会产生不良结果:突出显示变为100%不透明并阻塞了文本。

–耶稣的喜爱
16-10-16在20:30

也不会保留超链接。

–leftaround关于
18年11月13日在13:13

#3 楼

QPDF很棒。用这种方法从input.pdf中提取第1-10页并将其另存为output.pdf

qpdf input.pdf --pages . 1-10 -- output.pdf


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

手册中的内容:


如果您希望从infile.pdf中获取第1至5页,但是希望删除其余的元数据,则可以运行


qpdf --empty --pages infile.pdf 1-5 -- outfile.pdf



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

sudo apt-get install qpdf


这是一个非常好的工具PDF操作。它非常快,并且几乎没有依赖项。 “它可以加密和线性化文件,公开PDF文件的内部结构,并执行许多其他对最终用户和PDF开发人员有用的操作。”

QPDF的代码库在GitHub上。

评论


使用--pages标志可以拼接多个PDF中的页面。请注意,可以避免使用来重复名称。代替--pages选项中的输入文件:qpdf --pages。 1-10-input.pdf output.pdf。

–巴特
19年5月8日23:40

使用--- pages。在Ubuntu 18.04上似乎不起作用。也许这是最近的补充?

–cgmb
19年6月25日在6:26

当我仅提取几页时,为什么生成的PDF与源PDF具有相同的数据大小?

–edison23
19年6月25日在10:50

如果要提取1-8和53-70页,请qpdf --pages。 1-8。 53-70-input.pdf output.pdf

–安德鲁(Andrew Krizhanovsky)
19-09-26在7:28

qpdf input.pdf-页面。 1-output.pdf对我不起作用。 (版本8.0.2)。这对我有用:qpdf input.pdf --pages input.pdf 1-output.pdf

–凯尔·吉布森(Kyle Gibson)
4月29日17:27

#4 楼

页面范围-Nautilus脚本


概述

我基于链接到的@ThiagoPonte教程创建了一个稍微高级的脚本。它的主要功能是


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

屏幕截图



代码

 #!/bin/bash
#
# TITLE:        PDFextract
#
# AUTHOR:       (c) 2013-2015 Glutanimate (https://github.com/Glutanimate)
#
# VERSION:      0.2
#
# LICENSE:      GNU GPL v3 (http://www.gnu.org/licenses/gpl.html)
# 
# OVERVIEW:     PDFextract is a simple PDF extraction script based on Ghostscript/qpdf/cpdf.
#               It provides a simple way to extract a page range from a PDF document and is meant
#               to be used as a file manager script/addon (e.g. Nautilus script).
#
# FEATURES:     - simple GUI based on YAD, an advanced Zenity fork.
#               - preserves _all_ attributes of your original PDF file and does not compress 
#                 embedded images further than they are.      
#               - can choose from three different backends: ghostscript, qpdf, cpdf
#
# DEPENDENCIES: ghostscript/qpdf/cpdf poppler-utils yad libnotify-bin
#                         
#               You need to install at least one of the three backends supported by this script.
#
#               - ghostscript, qpdf, poppler-utils, and libnotify-bin are available via 
#                 the standard Ubuntu repositories
#               - cpdf is a commercial CLI PDF toolkit that is free for personal use.
#                 It can be downloaded here: https://github.com/coherentgraphics/cpdf-binaries
#               - yad can be installed from the webupd8 PPA with the following command:
#                 sudo add-apt-repository ppa:webupd8team/y-ppa-manager && apt-get update && apt-get install yad
#
# NOTES:        Here is a quick comparison of the advantages and disadvantages of each backend:
#
#                               speed     metadata preservation     content preservation        license
#               ghostscript:     --               ++                         ++               open-source
#               cpdf:             -               ++                         ++               proprietary
#               qpdf:            ++                +                         ++               open-source
#
#               Results might vary depending on the document and the version of the tool in question.
#
# INSTALLATION: https://askubuntu.com/a/236415
#
# This script was inspired by Kurt Pfeifle's PDF extraction script 
# (http://www.linuxjournal.com/content/tech-tip-extract-pages-pdf)
#
# Originally posted on askubuntu
# (https://askubuntu.com/a/282453)

# Variables

DOCUMENT=""
BACKENDSELECTION="^qpdf!ghostscript!cpdf"

# Functions

check_input(){
  if [[ -z "" ]]; then
    notify "Error: No input file selected."
    exit 1
  elif [[ ! "$(file -ib "")" == *application/pdf* ]]; then
    notify "Error: Not a valid PDF file."
    exit 1
  fi
}

check_deps () {
  for i in "$@"; do
    type "$i" > /dev/null 2>&1 
    if [[ "$?" != "0" ]]; then
      MissingDeps+="$i"
    fi
  done
}

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 1 1 1 ] /HSamples [ 1 1 1 1 ] /QFactor 0.4 /Blend 1 >> /GrayACSImageDict \
  << /VSamples [ 1 1 1 1 ] /HSamples [ 1 1 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 1 ] /HSamples [ 1 1 1 1 ] /QFactor \
  0.4 /Blend 1 >> /ColorImageFilter /FlateEncode /EmbedAllFonts true /UCRandBGInfo /Remove /AutoRotatePages /PageByPage /ColorImageResolution 300 /ColorImageDict << \
  /VSamples [ 1 1 1 1 ] /HSamples [ 1 1 1 1 ] /QFactor 0.4 /Blend 1 >> /CompatibilityLevel 1.7 /EncodeMonoImages true /GrayImageDownsampleThreshold 1.5 \
  /AutoFilterGrayImages false /GrayImageFilter /FlateEncode /DownsampleGrayImages false /AutoFilterColorImages false /DownsampleColorImages false /CompressPages true \
  /ColorImageDownsampleThreshold 1.5 /PreserveHalftoneInfo false >> setdistillerparams" -f "$DOCUMENT"
}

cpdfextract(){
  cpdf "$DOCUMENT" "$STARTPAGE-$STOPPAGE" -o "$OUTFILE"
}

qpdfextract(){
  qpdf --linearize "$DOCUMENT" --pages "$DOCUMENT" "$STARTPAGE-$STOPPAGE" -- "$OUTFILE"
  echo "$OUTFILE"
  return 0 # even benign qpdf warnings produce error codes, so we suppress them
}

notify(){
  echo ""
  notify-send -i application-pdf "PDFextract" ""
}

dialog_warning(){
  echo ""
  yad --center --image dialog-warning \
  --title "PDFExtract Warning" \
  --text "" \
  --button="Try again:0" \
  --button="Exit:1"

  [[ "$?" != "0" ]] && exit 0
}

dialog_settings(){
  PAGECOUNT=$(pdfinfo "$DOCUMENT" | grep Pages | sed 's/[^0-9]*//') #determine page count

  SETTINGS=($(\
      yad --form --width 300 --center \
          --window-icon application-pdf --image application-pdf \
          --separator=" " --title="PDFextract"\
          --text "Please choose the page range and backend"\
          --field="Start:NUM" 1[!1..$PAGECOUNT[!1]] --field="End:NUM" $PAGECOUNT[!1..$PAGECOUNT[!1]] \
          --field="Backend":CB "$BACKENDSELECTION" \
          --button="gtk-ok:0" --button="gtk-cancel:1"\
      ))

  SETTINGSRET="$?"

  [[ "$SETTINGSRET" != "0" ]] && exit 1

  STARTPAGE=$(printf %.0f ${SETTINGS[0]}) #round numbers and store array in variables
  STOPPAGE=$(printf %.0f ${SETTINGS[1]})
  BACKEND="${SETTINGS[2]}"
  EXTRACTOR="${BACKEND}extract"

  check_deps "$BACKEND"

  if [[ -n "$MissingDeps" ]]; then
    dialog_warning "Error, missing dependency: $MissingDeps"
    unset MissingDeps
    dialog_settings
    return
  fi

  if [[ "$STARTPAGE" -gt "$STOPPAGE" ]]; then 
    dialog_warning "<b>   Start page higher than stop page.   </b>"
    dialog_settings
    return
  fi

  OUTFILE="${DOCUMENT%.pdf} (p${STARTPAGE}-p${STOPPAGE}).pdf"
}

extract_pages(){
  $EXTRACTOR
  EXTRACTORRET="$?"
  if [[ "$EXTRACTORRET" = "0" ]]; then
    notify "Pages $STARTPAGE to $STOPPAGE succesfully extracted."
  else
    notify "There has been an error. Please check the CLI output."
  fi
}


# Main

check_input ""
dialog_settings
extract_pages
 


安装

,请遵循Nautilus脚本的通用安装说明。请确保仔细阅读脚本标头,因为这将有助于阐明脚本的安装和使用。 >概述


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


安装

sudo apt-get install pdfshuffler


用法

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




页面元素-Inkscape


概述

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

安装

sudo apt-get install inkscape


用法

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



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



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



4。)通过使用CTRL + SHIFT + D访问“文档属性”对话框并选择“使文档适合图像”:



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



6.)如果裁剪后的文档中有位图/光栅图像,则可以在接下来出现的对话框中设置其DPI:



7。)如果按照所有步骤操作,您将生成一个仅包含您选择的对象的真实PDF文件:



评论


很努力。谢谢!我了解它不允许选择页面的一部分,而只能选择整个页面。我对吗?

–卡尼迪尔
2013年4月17日23:36



@carnendil:是的,完全正确。我认为ghostscript无法做到这一点。但是可能还有其他解决方案可以通过编程方式完成。现在,我已经使用PDF-shuffler替代(有点黑)的解决方案编辑了答案。

–谷氨酸
13年4月18日在5:11



如果要提取PDF页面的一部分,pdfshuffler是不够的。页面的原始PDF数据仍保留在文件中。如果要从PDF文件中删除敏感数据,请不要使用此方法。

– Rob W
15年11月7日,11:48

pdfshuffler现在称为pdfarranger。

–amoe
19-09-11的15:20

刚刚尝试了第一个选项“页面范围-Nautilus脚本”,它完全可以在Ubuntu 20.04上运行,做得很好!

– Vlax
9月25日上午11:43

#5 楼

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

#!/bin/bash
# this function uses 3 arguments:
#      is the first page of the range to extract
#      is the last page of the range to extract
#      is the input file
#     output file will be named "inputfile_pXX-pYY.pdf"
gs -sDEVICE=pdfwrite -dNOPAUSE -dBATCH -dSAFER \
   -dFirstPage="" \
   -dLastPage="" \
   -sOutputFile="${3%.pdf}_p-p.pdf" \
   ""


要运行,请输入:

./pdfextractor.sh 4 20 myfile.pdf



4是指将开始新pdf的页面。
20是指将以pdf结尾的页面。
myfile.pdf是要提取零件的pdf文件。

输出将是原始pdf文件所在目录中的myfile_p4_p20.pdf

所有这些以及更多信息在这里:Tech Tip

评论


让我们保持简单:gs -sDEVICE = pdfwrite -dNOPAUSE -dBATCH -dFirstPage = 1 -dLastPage = 10 -sOutputFile = output.pdf input.pdf

–Ho1
2015年9月9日在7:14



和如何指定输入文件?

–安瓦尔
16年8月4日在10:53

-1用于在双引号字符串之外进行bash参数扩展。 (应为“ -sOutputFile = $ {3%.pdf} _p $ {1} -p $ {2} .pdf”等(请注意引号))。

– Rotsor
17年1月21日在16:16



@ Ho1,请将其写为新答案,确实有帮助!

–约书亚·萨拉查(Joshua Salazar)
18-10-3在18:36

这是最可移植的答案,因为ghostscript可能几乎安装在任何地方。

–卡利莫
19年6月13日在15:43

#6 楼

在安装了TeX发行版的任何系统中:

pdfjam <input file> <page ranges> -o <output file>


例如:

pdfjam original.pdf 5-10 -o out.pdf


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

评论


这是唯一为我工作的人。

– abc
18-10-21在3:12

完全弄乱了我的景观PDF。

–转向
3月10日21:10

过去,这对于横向PDF来说对我来说很好用,但是现在搞砸了。

–凯文
5月14日3:08



保持简单但灵活,您还可以执行以下操作:pdfjam original.pdf 2-或pdfjam original.pdf -4,具体取决于您要从第二页到最后还是仅到第四页。它将根据输入参数(要求的页面)自动命名输出。

–西里尔
6月5日5:49



pdfjam --landscape ...解决了景观问题

–尼古拉斯·默特奇
8月20日13:01

#7 楼

有一个名为pdfseparate的命令行实用程序。

从文档中:第一页)来自文件sample.pdf:

pdfseparate sample.pdf sample-%d.pdf

extracts  all pages from sample.pdf, if i.e. sample.pdf has 3 pages, it
   produces

sample-1.pdf, sample-2.pdf, sample-3.pdf


评论


很棒的工具!比pdftk快得多

–安瓦尔
2015年4月8日,下午5:57

很好,但是只限于一页,如果您想要的更多,您将获得单独的页面。

–Ho1
2015年9月9日在7:19

当然,尽管可以将上面的命令与pdfunite一起生成一个文档。

– jdmcbr
2015年9月9日15:22

如果您有一个庞大的文档,并且需要拆分所有页面,那么它确实非常快速且有用。

– MEDVIS
16-4-27上午10:32

这太棒了。谢谢。正是我需要的! :)

– Martin Marconcini
2月19日17:15

#8 楼

对于PDF操作,pdftksudo apt-get install pdftk)也是不错的命令行。以下是pdftk可以执行的操作的一些示例:

   Collate scanned pages
     pdftk A=even.pdf B=odd.pdf shuffle A B output collated.pdf
     or if odd.pdf is in reverse order:
     pdftk A=even.pdf B=odd.pdf shuffle A Bend-1 output collated.pdf

   Join in1.pdf and in2.pdf into a new PDF, out1.pdf
     pdftk in1.pdf in2.pdf cat output out1.pdf
     or (using handles):
     pdftk A=in1.pdf B=in2.pdf cat A B output out1.pdf
     or (using wildcards):
     pdftk *.pdf cat output combined.pdf

   Remove page 13 from in1.pdf to create out1.pdf
     pdftk in.pdf cat 1-12 14-end output out1.pdf
     or:
     pdftk A=in1.pdf cat A1-12 A14-end output out1.pdf

   Burst a single PDF document into pages and dump its data to
   doc_data.txt
     pdftk in.pdf burst

   Rotate the first PDF page to 90 degrees clockwise
     pdftk in.pdf cat 1east 2-end output out.pdf

   Rotate an entire PDF document to 180 degrees
     pdftk in.pdf cat 1-endsouth output out.pdf


对于您而言,我会这样做:

评论


软件包“ pdftk”没有候选安装

– abc
18-10-21在3:02

#9 楼

我正试图做同样的事情。您所需要做的就是:



安装pdftk

sudo apt-get install pdftk



提取随机页面:

pdftk myoldfile.pdf cat 1 2 4 5 output mynewfile.pdf



如果要提取范围:

pdftk myoldfile.pdf cat 1-2 4-5 output mynewfile.pdf



请检查来源以获取更多信息。

评论


我发现这个答案最好,因为它显示了如何输入多个范围。

–罗马·卢斯特里克
18年7月7日在8:41

#10 楼

您尝试过PDF Mod吗?

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

描述:

PDF Mod是一个修改PDF文档的简单工具。它可以通过拖放来旋转,提取,删除和重新排序页面。多个文档可以通过拖放来组合。您还可以使用PDF Mod编辑PDF文档的标题,主题,作者和关键字。



希望如此会有用。

瑞格斯。

评论


是的,我实际上确实尝试过,但是它不允许我保存部分页面,例如PDF格式的绘图...除非我没有看到该选项。它允许我从文档中提取整个页面,但这不是我想要的

–user72469
2012年11月26日,下午2:21

我经常使用它,很棒的工具!但是我有一个包含170个页面的文档,pdfmod无法处理。

–耶稣的喜爱
16-10-16在20:54

哇。这是令人惊讶的平滑。将我的512页的真实书扔给它(50MiB),并且...很及时。 UI轻而易举。对于像我这样的CLI迷,需要一定程度的GUI才能说服我,但这确实可以做到!

–sehe
17-10-12在6:50

PDF Mod有在Kubuntu 18中运行的错误

–约书亚·萨拉查(Joshua Salazar)
18-10-3在18:37

#11 楼

事实证明,我可以使用imagemagick做到这一点。如果没有,只需安装:

sudo apt-get install imagemagick



注1:
我已经用一页纸尝试过了pdf(我正在学习使用imagemagick,所以我不想遇到不必要的麻烦)。我不知道它是否/如何在多页中使用,但是您可以使用pdftk提取感兴趣的一页:被拆分(在上面的示例中,A1选择第一页)。

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


使用display套件的一部分命令imagemagick打开pdf:

pdftk A=myfile.pdf cat A1 output page1.pdf


我的看起来像这样:


单击图像以查看完整分辨率的版本

现在单击窗口,菜单将弹出到侧面。在此处,选择“变换” |裁剪。



返回主窗口,只需拖动指针即可选择要裁剪的区域(经典的角到角选择)。 br />
选择时请注意图像周围的手形指针

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

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

写下所选区域的尺寸;

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



最后,一旦您对裁剪的结果感到满意,请单击菜单File | File。保存

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



保存之前,imagemagick将询问“选择页面几何形状”。在这里,您可以输入裁切图像的尺寸,并使用一个简单的字母“ x”来分隔宽度和高度。



现在,您可以从命令行(命令是convert,带有选项-crop)-肯定更快,但是您必须事先知道要提取的图像的坐标。在其网页上查看man convert和示例。

评论


不了解imagemagick的GUI。看起来很有趣。但是,如果我错了,请纠正我,但我认为imagemagick无法处理矢量化图像。因此,您要导出的内容可能只会是光栅/位图图像。在这种情况下,此方法与拍摄文档区域的屏幕快照相同。

–谷氨酸
13年4月19日在8:23

实际上,imagemagick仅能处理光栅图像,而显示只是该套件的一项命令。 imagemagick有很多界面-请查看其网页。我认为,对于矢量图像,最好的解决方案是使用Inkscape的方法。

–卡尼迪尔
13年4月19日在15:00

您可能需要在答案的顶部添加免责声明,以免将矢量从矢量转换为栅格图形。此属性使它成为根本不同的方法。

–bluenote10
2014年7月9日15:10

#12 楼

mupdf随mupdf一起提供,可以执行许多简单的PDF处理工作,但语法比qpdf(以及其他一些答案)更优雅。此外,在大型PDF上似乎更快:

 # extract page range 20-40
mutool clean in.pdf out.pdf 20-40
# extract from all over the pdf
mutool clean in.pdf out.pdf '1, 3-4, 74-92'
 


#13 楼

如果您想使用内置的bash命令,则pdfseparate和pdfunite非常适合您。

pdfseparate sample.pdf sample-%d.pdf
# ls; sample.pdf sample-1.pdf sample-2.pdf sample-3.pdf sample-4.pdf

pdfunite sample-2.pdf sample-3.pdf output.pdf
# now you can use output.pdf


#14 楼

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

从此处下载

评论


您可以从上面的链接下载最新版本,但是如果您更喜欢Software Center的便利,也可以从那里安装(或者从终端通过sudo apt-get install pdfsam安装)。但是,Ubuntu中的版本已经过时了,因为它仍然是1.1.4版本,而sourceforge版本已经是2.2.2。

– Waldir Leoncio
14年2月14日在18:00

最新的3.x(当前为3.1.0)具有可安装在Ubuntu上的.deb软件包,并具有执行OP要求的提取页面模块

– Andrea Vacondio
16年8月6日在8:25

@Andrea Vacondio Bravo的精彩编辑!您正在帮助确保互联网安全。我发现sourceforge.net上旧链接中的文件已嵌入废话。 SourceForge网站的新所有者表示,他们将停止这样做,但显然他们说谎。

–卡雷尔
16年8月6日在8:41



#15 楼

原始用户要求使用交互式工具而不是命令行工具:一个简单的解决方案是使用任何PDF查看器(在Kubuntu上为okular,在Ubuntu上为evince甚至是Firefox),然后仅使用标准打印对话框,选择“打印到PDF文件”,然后在扩展设置对话框中选择要“打印”的页面。此变体有一些缺点,因为原始PDF上的一些头(例如旋转的页面,表单等)可能会丢失,但对于大多数简单的PDF来说却很直接。

#16 楼

不幸的是,Ubuntu并没有提供直接执行命令的命令。在名为32的新文件中,可以键入以下命令:
mkdir tmppdfdir
pdfseparate -f 32 -l 65 sourcefile.pdf tmppdfdir/page-%d.pdf
pdfunite tmppdfdir/page*.pdf extract.pdf
rm -rf tmppdfdir/

警告:请确保65之前不存在!

#17 楼

如果要从PDF中提取,则可以使用http://www.sumnotes.net。
这是一个很棒的工具,可以从PDF中提取注释,突出显示和图像。
还可以观看教程。在YouTube上输入sumnotes

我希望您会喜欢它!

#18 楼

Apache PDFBox是用于处理PDF文档的开源Java工具。它带有一个命令行工具,可以从pdf拆分页面(请参阅此处的手册)。
要使用它,只需安装pdfbox-app-2.?.?.jar并执行类似以下命令:
java -jar pdfbox-app-2.0.20.jar PDFSplit -startPage 1 -endPage 10 -outputPrefix ch1 book.pdf


#19 楼

我已经开始组合使用一种工具来为常见操作提供简化的界面。
您可以像这样分割PDF的子集:
$ npm install @mountbuild/mouse -g
$ mouse slice input.pdf -s 15 -e 25 -o output.pdf

这将为页面创建一个新的PDF。在15到25之间(包括15到25)之间。
如果没有其他内容,请查看源代码,了解如何编写自己的脚本以使用JavaScript进行操作。