【问题标题】:PDF ManipulationsPDF 操作
【发布时间】:2010-06-20 23:28:13
【问题描述】:

我正在寻找一种可以让我对 PDF 文档执行以下操作的解决方案:

  1. 将 PDF 页面插入到现有 PDF 文档中
  2. 从现有 PDF 文档中删除 PDF 页面
  3. 更改某些 PDF 页面的方向

我应该考虑什么解决方案?我的输出需要是 PDF。

【问题讨论】:

  • 您是在寻找独立程序(例如 GhostScript)还是与您自己的程序集成的库?如果是后者,什么编程语言?
  • 我需要将它集成到我的 Web 应用程序中。使用 PHP。如果可能的话,试图弄清楚如何在 GhostScript 中做到这一点。
  • 我的部分解决方案: 1. 给定一个输入 PDF 文档,将文档拆分为单独的页面: gs -dFirstPage=1 -dLastPage=1 -sDEVICE=pdfwrite -sOutputFile=page-1.pdf input .pdf (上面创建了一个新的 PDF 文档,其中只包含 input.pdf 的第一页) 2. 给定多个 PDF 文档,将文档合并为一个单独的 PDF 文档。 gs -sDEVICE=pdfwrite -sOutputFile=combined.pdf -f page-1.pdf page-2.pdf (上面将page-1.pdf和page-2.pdf合并成combined.pdf) 所以现在,我只需要知道如何改变每个页面的方向。

标签: pdf pdf-generation ghostscript


【解决方案1】:

既然你已经发现了...
* ...如何将多页 PDF 文档拆分为单页文件,以及
* ...如何将多个 PDF 文档重新组合成一个
使用 Ghostscript,这里是如何旋转页面。但是,这并不可靠,因为它依赖于 Ghostscript 发现每个页面上文本方向的主要流程的能力:
* -dAutoRotatePages=/None -- 保留每一页的方向;
* -dAutoRotatePages=/All -- 根据一种“多数决定”旋转所有页面(或不旋转);
* -dAutoRotatePages=/PageByPage -- 单独自动旋转页面。

将其中之一添加到您正在使用的 Ghostscript 命令行中。

如果页面上没有文本(或者如果将自动页面旋转设置为/None),则Ghostscript 使用setpagedevice 设置。您可以使用 -c 开关在 Ghostscript 命令行上传递此类 setpagedevice 参数,如下所示:
* -c "<</Orientation 3>> setpagedevice" -- 设置横向方向;
* -c "<</Orientation 0>> setpagedevice" -- 设置纵向方向;
* -c "<</Orientation 2>> setpagedevice" -- 设置上下颠倒方向;
* -c "<</Orientation 1>> setpagedevice" -- 设置海景方向。

您可能需要在提取页面时为每个页面设置方向。我认为将它们合并回统一文档时它不会起作用(我从未测试过)。

不过,我还建议您查看pdftk(也适用于 Windows)。它是一个命令行工具,可以从 PDF 中提取页面、合并多个 PDF 文件、旋转页面等等。比 Ghostscript 更容易用于您指定的目的,而且速度也更快。详情见这里:http://www.accesspdf.com/pdftk/

【讨论】:

    【解决方案2】:

    如果您正在寻找一个独立的工具,pdftk 可以完成所有这些事情

    【讨论】:

    • 不是一个独立的工具;需要一个图书馆。
    • 你应该用这个澄清来更新你的问题。 (顺便说一句,ghostscript 也有一个 .dll 用于控制其所有功能。)
    【解决方案3】:

    现在 StackOverflowNewbie 已经澄清他不想要一个独立的命令行工具,而是一个库:iTextpdftk 命令行实用程序的基础,他拒绝作为满足他要求的合适解决方案。它是一个图书馆。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-05
      • 1970-01-01
      • 2011-04-18
      • 2011-07-11
      相关资源
      最近更新 更多