批量裁剪 PDF 页面?

批量裁剪 PDF 页面?

我有一个 PDF 文档,其中包含带有裁剪标记的页面。我想将这些页面复制到另一个没有裁剪标记的 PDF 中。我假设我必须裁剪掉裁剪标记,但有没有办法批量而不是交互地完成此操作?

答案1

您可以安装ImageMagick来创建一个小的批处理脚本

例子.bat:

convert yourpdf.pdf tempfile.png
convert -crop widthxheight+xoffset+yoffset *.png
convert *.png newpdf.pdf

此脚本暂时将 pdf 页面转换为一系列图像。然后裁剪所有图像(指定宽度、高度、x 偏移量和 y 偏移量),然后将所有页面重新组合为新的 pdf 文件。

有关 ImageMagick 的更多信息: http://www.imagemagick.org/script/command-line-processing.php

答案2

布里斯可让您裁剪 pdf 的页边距。它会将所有页面分层,以便您可以一次性裁剪它们。对于 pdf 电子书,执行此操作可能需要 20 秒。然后,您可以在 Kindle 上阅读所有原始 PDF 格式,但不会浪费页边距空间。通常,文本大小与 Kindle 上电子书格式的第二小字体大小大致相同或略小。对于包含图像或代码示例的 PDF,我通常更喜欢它而不是亚马逊的 PDF 转换器服务。

答案3

K2pdfopt 可以做到这一点。

K2pdfopt 优化了 PDF 文件的格式,以便在小型(例如 6 英寸)移动阅读器和 Kindle 等智能手机屏幕上查看。它适用于白色背景上的基于文本的文件,其中可能还包含图形或数字。它是完全自动化的,可以批量处理 PDF 文件。K2pdfopt 的工作原理是将 PDF 文件的每一页转换为位图,然后扫描位图以查找可查看区域(矩形区域),并剪切和剪裁这些区域并将它们组装成多个较小的页面而没有多余的边距,以便最大化查看区域。任何类型的 PDF 文件(最好是主要为白色背景)都可以转换。K2pdfopt 尤其适用于双列 PDF 文件,例如 IEEE 和其他技术期刊文章(请参阅下面的示例 - 它会自动检测 PDF 页面上的双列区域),但即使是单列文件也经常会得到显着改善并且更易于阅读(请参阅示例)。 K2pdfopt 优于其他 PDF 转换器,因为它完全保留了原始文件中渲染的 PDF 字体和图形,而不像将 PDF 转换为电子书格式的程序。此外,由于 k2optpdf 完全独立于语言或字体,因此它可以同样出色地处理任何语言的文档。

例如,要优化 K2pdfopt 所在文件夹中的所有 pdf,请运行k2pdfopt.exe *.pdf

http://www.willus.com/k2pdfopt/

答案4

无需安装 Office 和 Acrobat 之外的任何东西,您可以制作一个 VBA/VBS 脚本循环以下裁剪代码:

Sub A4ReportCrop()

    Dim AcroApp As Acrobat.CAcroApp
    Dim Part1Document As Acrobat.CAcroPDDoc
    Dim Part2Document As Acrobat.CAcroPDDoc
    Dim numPages As Integer
    Dim rect, i

    Set AcroApp = CreateObject("AcroExch.App")

    Set Part1Document = CreateObject("AcroExch.PDDoc")
    Part1Document.Open "C:\Users\xyz\Desktop\20171121 IPS SPS DPS.pdf" '20171121 EXE2.pdf"
    Part1Document.OpenAVDoc "Working Doc"

    Set rect = CreateObject("AcroExch.Rect")
    rect.Top = 805
    rect.Left = 36
    rect.bottom = 500
    rect.Right = 500

    AcroApp.Show
    AcroApp.Maximize 1

    i = Part1Document.CropPages(0, 0, 0, rect)
    Debug.Print "Crop Status: " & i

    If Part1Document.Save(PDSaveFull, "C:\Users\xyz\Desktop\Temp_" & _
                        Format(Now, "YYYYMMDDHHNNSS") & ".pdf") = False Then
        MsgBox "Cannot save the modified document"
    End If

    Part1Document.Close
    AcroApp.Exit

End Sub

相关内容