【问题标题】:Split a PDF file into another two PDF files using qpdf使用 qpdf 将一个 PDF 文件拆分为另外两个 PDF 文件
【发布时间】:2020-06-20 13:10:32
【问题描述】:

是否可以使用qpdf 工具将 PDF 文件分成两部分或 n 部分?

文档是这么说的,但我找不到执行此操作的确切命令。

我使用的是 qpdf 版本 10.0.1。

【问题讨论】:

  • 我认为您需要为每个输出文件分别调用 qpdf 。对于每个输出文件,您可以提供要提取到输出文件的页面范围,例如qpdf infile.pdf --pages infile.pdf 2-3 -- outfile.pdf 将第 2 页和第 3 页从 infile.pdf 提取到 outfile.pdf。因此,使用一些 shell 循环,您可以创建一个命令行来提取多个文件。

标签: command-line-interface qpdf


【解决方案1】:

是的,很简单:

假设infile.pdf 有 12 页(pagecount):

qpdf.exe --split-pages=n infile.pdf output-%d.pdf

伪代码:

n = 整数(pagecount / number_of_parts)

来自原始文档的更多详细信息:

--split-pages=[n]

将每组 n 页写入一个单独的输出文件。如果未指定 n,则创建单个页面。输出文件名生成如下:

如果字符串 %d 出现在输出文件名中,则将其替换为从 1 开始的一系列零填充页​​码。

否则,如果输出文件名以 .pdf 结尾(不区分大小写),则会在文件扩展名之前插入一个以短划线开头的零填充页面范围。

否则,文件名会附加一个以短划线开头的零填充页面范围。

在单页组的情况下,页面范围是单个数字,否则是由破折号分隔的两个数字。例如,如果 infile.pdf 有 12 页

qpdf --split-pages infile.pdf %d-out 将生成文件 01-out 到 12-out

qpdf --split-pages=2 infile.pdf outfile.pdf 会通过 outfile-11-12.pdf 生成文件 outfile-01-02.pdf

qpdf --split-pages infile.pdf something.else 会生成文件 something.else-01 到 something.else-12

参考:http://qpdf.sourceforge.net/files/qpdf-manual.html#ref.basic-options

【讨论】:

    【解决方案2】:

    一种有点粗暴的处理方式,可以通过修改大文件和输出 = 然后重新运行它来更新多个文件的子集。 一旦我为它制作了适当的功能,就会更新。

    pacman::p_load(pdftools, qpdf)
    #some prep
    bigfile <- "Some/File/Path.pdf"
    biginfo <- pdf_length(bigfile)
    
    # now we subset x2 being sure to define unique names for output
    # otherwise the second file will overwrite the first one we create here.
    # for part 1
    pdf_subset(bigfile,
               pages = 1:(biginfo/2),
               output = "Some/File/Path_part_1.pdf")
    # for part 2
    pdf_subset(bigfile,
               pages = ((biginfo+1)/2):biginfo,
               output = "Some/File/Path_part_2.pdf")
    

    【讨论】:

      猜你喜欢
      • 2010-10-04
      • 2014-09-11
      • 2014-12-09
      • 1970-01-01
      • 1970-01-01
      • 2021-12-16
      • 1970-01-01
      • 1970-01-01
      • 2018-10-12
      相关资源
      最近更新 更多