使用 ImageMagick 和/或 GhostScript 将多页 PDF 转换为多个 JPG

2024-05-15

我正在尝试将多页 PDF 文件转换为一堆 JPEG,PDF 中的每一页一个。我花了几个小时寻找如何做到这一点,最终我发现我需要安装 Ghostscript。所以我就这么做了(来自这个网站:http://downloads.ghostscript.com/public/ http://downloads.ghostscript.com/public/我使用了 2012 年 2 月 8 日的最新链接“ghostscript-9.05.tar.gz”)。

然而,即使安装/下载了这个,我仍然无法做我想做的事。我是否应该将其保存在特殊的地方,例如与 ImageMagick 位于同一文件夹中?

到目前为止我已经弄清楚的是:

  • 在命令提示符中,我将工作目录更改为保存该文件的 ImageMagick 文件夹。

  • 然后我输入

    convert "<full file path to pdf>" "<full file path to jpg>"
    

接下来是一个巨大的错误。它开始于:

    Unrecoverable error: rangecheck in.setuserparams
    Operand stack:

接下来是一串难以辨认的数字和大写字母。它的结尾是:

    While reading gs_lev2.ps:
    %%[ Error: invalidaccess; OffendingCommand: put ]%%

不用说,经过几个小时的深思熟虑,我认为我距离完成将 PDF 转换为 JPG 这一看似简单的任务还差得远。

我想要的是一些关于如何进行这项工作的分步说明。不要遗漏任何内容,无论它看起来多么“明显”(尤其是涉及 Ghostscript 的内容)。这几个月来一直困扰着我和我的主管。

为了进一步说明,我们使用的是 Windows XP 操作系统。最终的目的是在统计语言 R 中调用这些命令行,并在脚本中运行它。此外,我已经能够成功地将 JPG 转换为 PNG 格式,反之亦然,但 PDF 却无法正常工作。

Help!!!


您不需要 ImageMagick 来完成此操作,Ghostscript 可以单独完成这一切。 (如果您使用 ImageMagick,它本身无法进行转换,它HAS使用 Ghostscript 作为其'代表'.)

尝试直接使用 Ghostscript:

 c:\path\to\gswin32c.exe ^
   -o page_%03d.jpg ^
   -sDEVICE=jpeg ^
    d:/path/to/input.pdf

这将为每个页面创建一个新的 JPEG,文件名将按以下顺序递增:page_001.jpg, page_002.jpg,...

请注意,这还将创建使用所有默认设置的 JPEG 文件。jpeg设备(最重要的之一是分辨率为 72dpi)。

如果您需要更高(或更低的分辨率)的图像,您可以添加其他选项:

 gswin32c.exe ^
   -o page_%03d.jpg ^
   -sDEVICE=jpeg ^
   -r300 ^
   -dJPEGQ=100 ^
    d:/path/to/input.pdf

-r300将分辨率设置为 300dpi 并-dJPEGQ=100设置最高 JPEG 质量级别(Ghostscript 的默认值为 75)。

另请注意: JPEG 不太适合以良好的质量表示具有锐利边缘和高对比度的形状(例如您通常在带有小字符的黑白文本页面中看到的形状)。

(有损)JPEG 压缩方法是针对连续色调进行了优化图片+照片,不适用于线条图形。因此,对于主要包含文本的 PostScript 或 PDF 输入页面来说,它不是最佳选择。在这里,即使输入非常好,JPEG 格式的有损压缩也会导致输出质量较差。也可以看看JPEG 常见问题解答 http://www.faqs.org/faqs/jpeg-faq/有关此主题的更多详细信息。

通过选择 PNG 作为输出格式,您可以获得更好的图像输出(PNG 使用无损压缩):

 gswin32c.exe ^
   -o page_%03d.png ^
   -sDEVICE=png16m ^
   -r150 ^
    d:/path/to/input.pdf

The png16m设备产生 24 位 RGB 颜色。你可以把这个换成pnggray(对于纯灰度输出),png256(对于 8 位颜色),png16(4 位颜色),pngmono(仅限黑白)或pngmonod(替代黑白模块)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 ImageMagick 和/或 GhostScript 将多页 PDF 转换为多个 JPG 的相关文章

  • Windows 如何批量打印 PDF 文档?

    在我的机器上 当在 Windows 资源管理器中选择多个 PDF 文档时 右键单击并选择Print Adobe Acrobat Reader 将最小化打开 所有文档都会静默发送到打印机 我想做Windows一样的事情 但是怎么做呢 我在用P
  • 在 RMarkdown 输出到 PDF 时缩进而不添加项目符号点或编号

    之前有人问过如何在没有项目符号的情况下缩进文本 RMarkdown 中的点 但这是针对 HTML 输出的 在 RMarkdown 中缩进而不添加项目符号点或数字 https stackoverflow com questions 47087
  • 如何使用网格分割图像并保留透明度边界框

    我有一些 png 图像 我想将其分成几个部分 例如按网格或大小 但每个部分应具有与原始图像相同的边界框 透明度 Example 将图像分成两部分 原来的 200 89 Output 部分 1 png 200 89 第2部分 png 200
  • 如何从 pdf C# 中获取具有特定颜色的文本

    我必须将 pdf 文件中的数据放入特定的数据库结构中 这要求我能够从 pdf 文件中获取某些数据 由于 pdf 没有任何标签等 我想知道是否可以根据颜色获取文本 比如说我想要所有的红色文本 或者我想要文档中的所有斜体文本 这在 C 中可能吗
  • 使用 ImageMagick 和 PHP 将 PNG 转换为 JPG 并将透明背景设置为白色

    将图像从 PNG 转换为 JPEG 时 如何使用 ImageMagick 带有 php 扩展 将透明背景设置为白色 在撰写本文时 您尚未指定正在使用哪个扩展 但如果您使用命令行 则命令将是 convert image png backgro
  • 在 Flash Player 10 中打开 pdf

    我需要在 Flash Player 10 中打开 PDF 该 swf 不会在浏览器中运行 并且系统上不会有 adobe reader 程序 我需要知道是否可以在 Flash 播放器中打开 PDF 而无需以任何方式进行转换 我在谷歌上搜索了无
  • 如何修复 Laravel 中未找到的“PDF”类

    在我的 Laravel 应用程序中遇到以下错误 CollaboPDFController php 第 14 行中的 FatalErrorException 未找到 PDF 类 这是我的ColaboPDFController php
  • 如何在启用嵌入时间戳和 LTV 的情况下签署 PDF?

    我正在尝试签署启用了时间戳和 LTV 的 pdf 以便它在 Adob e Reader 中显示如下 在英语中 这意味着 签名包含嵌入的时间戳 和 签名启用了 LTV 这是我正在使用的代码 PrivateKey pk get pk from
  • 在chrome中将pdf渲染为iframe

    我正在尝试将 pdf 托管在隐藏的 iframe 中 但在 Chrome 中呈现较小的问题时遇到问题 我必须刷新页面才能正确加载 JSfiddle 在这里https jsfiddle net 464xo40f https jsfiddle
  • 在 iPad 上显示 PDF 文档 - 颜色问题

    我为 iPad 构建了一个 PDF 阅读器 在将预览中的文档与模拟器和设备进行并排比较时 我注意到一些颜色问题 最好的形容就是颜色变得更加浓郁 近距离使用的相似颜色之间的任何差异都会变得更加明显 而所有颜色总体上看起来都更亮 尽管大肆宣传将
  • 如何执行 ImageMagick 仅将多页 PDF 的第一页转换为 JPEG?

    我如何执行 ImageMagick 的convert如果我想要 JPEG仅从第一页开始多页 PDF 如果您使用的是convert命令行您可以使用以下参数执行它 convert source pdf 0 output jpeg 请注意 Ima
  • GhostScript PDF 合并(丢失可编辑字段)

    我正在使用 GhostScript 将 PDF 合并为一个 PDF 其中一份 PDF 具有我在 Adob e Acrobat Pro 9 中创建的文本框字段 可编辑字段 当我使用 GhostScript 合并这两个 PDF 时 我丢失了文本
  • 如何将魔杖图像对象转换为 numpy 数组(不使用 OpenCV)?

    我正在使用将 pdf 文件转换为图像Wand http docs wand py org en 0 4 4 然后 我使用 ndimage 进行进一步的图像处理 我想直接将 Wand 图像转换为 ndarray 我已经看到答案here htt
  • 在 iPhone 上搜索 PDF

    经过两天尝试使用 Quartz 从 PDF 中读取注释后 我成功做到了并且发布我的代码 https stackoverflow com questions 4080373 get pdf hyperlinks on ios with qua
  • 在 iOS 中,如何以编程方式填写 pdf 表单字段?

    我需要获取一个现有的 pdf 文件 并以编程方式填写带有文本的表单字段列表 然后保存 pdf 而不将其显示给用户 例如 如果 pdf 文件包含名为 LastName 和 FirstName 的字段 我想将 FirstName 的值设置为 L
  • 使用 GhostScript 获取页面大小

    是否可以使用 GhostScript 获取页面大小 例如从 PDF 文档页面 我见过 bbox 设备 但它返回的是边界框 每页不同 而不是 PDF 页面的 TrimBox 或 CropBox 看http www prePressure co
  • 将固定文档/XPS 打印为 PDF,而不显示文件保存对话框

    我有一个FixedDocument我允许用户在 WPF GUI 中预览 然后打印到纸张上 而不显示任何 Windows 打印对话框 如下所示 private void Print PrintQueueCollection printQueu
  • c# itextsharp如何获取数字签名图像

    是否可以使用 C 代码使用 itextsharp 获取 pdf 文件中任何数字签名的图像 PdfReader pdf new PdfReader location pdf AcroFields acroFields pdf AcroFiel
  • 如何使用 pdftk 和 /MediaBox 裁剪 PDF 边距

    I used pdftk解压缩 PDF 然后将其作为文本文件打开 我想编辑 媒体盒领域 就我而言 MediaBox 0 0 612 792 例如 我想减少边距 MediaBox 100 0 512 792 不幸的是它不起作用 我可以改变0
  • 将透明PNG图像转换为透明JPEG或透明GIF [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我有一个透明的 PNG 图像 我想将其添加为水印this http www bsrsoft com 视频录制软件 但问题是 软件需要jpeg图像作为水

随机推荐

  • 通过推送通知唤醒

    Suppose 有一些对象 例如 一个数组a 和依赖于对象的条件 例如 a empty 当前线程以外的某些线程可以操作该对象 a 因此条件评估值的真实性会随着时间的推移而变化 如何让当前线程在代码中的某个时刻休眠 并在条件满足时通过推送通知
  • 片段内容下方是否存在持久性 BottomSheet?

    Using a 持久底表 https material google com components bottom sheets html bottom sheets persistent bottom sheets 在一个协调器布局 htt
  • CakePHP 会话被写入 /tmp/ 而不是 /app/tmp/sessions/

    这里有类似的简单但未回答的问题 cakephp 会话 tmp sessions 中没有新文件 https stackoverflow com questions 24733151 cakephp session no new files i
  • 如何将 hls.js 与 React 结合使用

    我需要一些帮助来尝试弄清楚如何在 React 中使用 hls js 让我解释一下我必须从 api 获取 m3u8 的情况我能够使用基本的 html 使其工作
  • 什么是 API 密钥? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 如今 我几乎在每个跨服务应用程序中都看到这个词 API 密钥到底是什么以及它的用途是什么 另外 公共 API 密钥和私有 API 密钥
  • IntelliJ:线程“主”java.lang.NoClassDefFoundError中的异常:org/apache/spark/sql/types/DataType

    附言 有一个类似的问题here https stackoverflow com questions 40287289 java lang noclassdeffounderror org apache spark logging 但那是在
  • 垃圾收集器如何在幕后工作来收集死对象?

    我正在阅读有关垃圾收集的内容 众所周知 垃圾收集会收集死亡对象并回收内存 我的问题是 Collector 如何知道任何对象已死亡 它使用什么数据结构来跟踪活动对象 我正在研究这个问题 我发现GC实际上会跟踪活动对象 并标记它们 每个未标记的
  • Linq to Entities 中的动态 where 子句 (OR)

    在文中here https stackoverflow com questions 9122220 dynamic where clause in linq to entities我学习了如何使用 Linq 的延迟执行来构建动态查询 但查询
  • 我如何选择特定的cookie?

    如何从响应中选择特定的 cookie 我收到的响应有 6 个 Set Cookie 行 但我只需要其中一些用于我的下一篇文章 HTTP 1 1 200 OK date Thu 05 Mar 2015 13 49 29 GMT cache c
  • C++中const对象位于哪个内存区域? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何使用数据绑定将点击侦听器设置为 LinearLayout

    我目前正在尝试将点击侦听器设置为LinearLayout查看在 xml使用数据绑定的布局文件 我已经设法让它在其他视图上很好地工作 比如Button or TextView 但由于某种原因 它不能与LinearLayout 这是我尝试的基本
  • 我的单元测试 ReSharper 装订线图标未显示

    我已经安装了 ReSharper 4 1 和 Gallio 3 0 5 但没有获得单元测试的装订线图标 测试似乎在测试资源管理器中运行良好 但代码中的测试旁边没有图标 可能是什么原因造成的 我之前安装了 MbUnit 2 4 ReSharp
  • db2中如何删除所有非数字字母

    我在 DATA 列 varchar 中有一些数据 如下所示 Nowshak 7 485 m Maja e Korabit Golem Korab 2 764 m Tahat 3 003 m Morro de Moco 2 620 m Cer
  • 通过 .NET Core 控制台应用程序中的依赖项注入访问配置

    如何正确激活使用 ServiceCollection Configure 函数添加的配置 public static void Main args args serviceCollection new ServiceCollection s
  • 如何实现 ALTER TABLE 的示例[重复]

    这个问题在这里已经有答案了 我已经多次问过这个问题 但尚未得到完整的答案 如何实现 ALTER TABLE 语句以向数据库添加列 有人可以给我举个例子吗 请阅读SQLite ALTER TABLE 参考 http sqlite org la
  • 大数组上的 SSE 性能较慢

    我是 SSE 编程新手 所以我希望有人可以帮助我 我最近使用 GCC SSE 内在函数实现了一个函数来计算 32 位整数数组的总和 下面给出了我的实现代码 int ssum const int d unsigned int len stat
  • 像素到厘米?

    我只是想知道像素单位是否是不变的 以及我们是否可以从像素转换为厘米 如同这个问题 https stackoverflow com questions 139655 how to convert pixels to points px to
  • 将按钮添加到 Google 表格并在单击时为单元格设置值

    我是 Google 脚本的新手 我有一个包含 5 列的 Google 表格 在每一列上我需要一个按钮 带有文本1 2 3 4 5 在每个按钮上单击我需要将按钮文本设置为相应的单元格并隐藏单击的按钮 是否可以 您可以插入看起来像按钮的图像 然
  • 将 XML 映射到 C# 中的类

    我希望使用 XmlSerializer 对象将嵌套元素中的多个 XML 属性映射到单个 POCO 类中 XML
  • 使用 ImageMagick 和/或 GhostScript 将多页 PDF 转换为多个 JPG

    我正在尝试将多页 PDF 文件转换为一堆 JPEG PDF 中的每一页一个 我花了几个小时寻找如何做到这一点 最终我发现我需要安装 Ghostscript 所以我就这么做了 来自这个网站 http downloads ghostscript