将 PDF 转换为 PNG

2023-12-01

我正在尝试将 PDF 转换为 PNG 图像(至少是一个封面)。我已经使用 pdftk 成功提取了 PDF 的第一页。我正在使用 imagemagick 进行转换:

convert cover.pdf cover.png

这是可行的,但不幸的是 cover.png 渲染不正确(PDF 中的某些 alpha 对象未正确渲染)。我知道 ImageMagick 使用 GhostScript 进行转换,如果我直接使用 gs 进行转换,我可以获得所需的结果,但我宁愿使用转换库,因为它还有我想利用的其他工具。

GhostScript 中的此命令可完成所需的图像:

gs -sDEVICE=pngalpha -sOutputFile=cover.png -r144 cover.pdf

我想知道是否有任何方法可以通过转换为 GhostScript 传递参数,或者我是否坚持直接调用 GhostScript?


您可以使用一个命令行来执行两个命令(gs, convert)通过管道连接,如果第一个命令可以将其输出写入 stdout,并且第二个命令可以从 stdin 读取其输入。

  1. 幸运的是,gs 可以写入标准输出(... -o %stdout ...).
  2. 幸运的是,convert 可以从 stdin 读取(convert -background transparent - output.png).

问题解决了:

  • GS 用于处理特殊图像的 alpha 通道,
  • 转换用于创建透明背景,
  • 用于避免在磁盘上写出临时文件的管道。

完整的解决方案:

gs -sDEVICE=pngalpha       \
   -o %stdout              \
   -r144 cover.pdf         \
   |                       \
convert                    \
   -background transparent \
   -                       \
    cover.png

Update

如果您想每个 PDF 页面有一个单独的 PNG,您可以使用%d syntax:

gs -sDEVICE=pngalpha -o file-%03d.png -r144 cover.pdf

这将创建名为的 PNG 文件page-000.png, page-001.png, ...(请注意%d-计数是从零开始的--file-000.png对应于 PDF 的第 1 页,001到第 2 页...

或者,如果您想保留透明背景,对于 100 页的 PDF,请执行以下操作

for i in {1..100}; do        \
                             \
  gs -sDEVICE=pngalpha       \
     -dFirstPage="${i}"      \
     -dLastPage="${i}"       \
     -o %stdout              \
     -r144 input.pdf         \
     |                       \
  convert                    \
     -background transparent \
     -                       \
      page-${i}.png ;        \
                             \
done
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 PDF 转换为 PNG 的相关文章

  • 在opencv中将三个灰度[R,G,B]图像合并为单个彩色图像

    我有 3 个使用 split 函数创建的灰度图像 现在我想重新生成彩色图像 我尝试了以下代码 但它不起作用 我得到的结果图像仍然是灰度的 cv Mat R cv imread home r secret R png 0 cv Mat G c
  • 从服务器下载图像(cUrl,但接受建议)C++

    我试图通过从服务器 网站 下载图像来设置旋转背景图像 并尝试使用curl 来执行此操作 但是在执行此操作方面取得了0 成功 我的代码的 缩短的 版本如下 我没有收到错误 但是 如何 临时 保存该图像以将其显示为背景 是否有图像 类型变量 或
  • Imagemagick 合成图像反转

    我想给图像加水印 所以我使用了 compose multiply 但由于某种原因它无法按预期工作 命令 magick image jpg over png compose multiply resize 2048x2048 gravity
  • 反转 PDF 中的白色和黑色

    给定一个黑白 PDF 如何反转颜色 使背景为黑色 其他所有内容为白色 Adobe Reader 可以做到这一点 首选项 gt 辅助功能 仅供节目中观看之用 但不会从本质上更改文档 从而使其他 PDF 阅读器中的颜色也发生反转 如何永久反转颜
  • 如何制作像毕加索一样的滑动显示?

    我一直在使用 Picasso 的库将图像加载到我的应用程序中的 gridview 中 它的工作原理和外观完全符合我的要求 但用户告诉我图像加载速度非常慢 我知道这是因为网络速度差 毕加索正在加载非常大的完整图像 然后调整它们的大小以适合我的
  • 有什么方法可以在 iPhone 上以编程方式将图像保存为 default.png 吗?

    我为 iphone 编写一个应用程序 我想将其中的图像保存为 default png 以供下次调用 这可能吗 沙箱似乎不允许您覆盖其本地文件系统中的任何内容 不 你不能 过去可以将 Default png 作为符号链接插入到您的 Docum
  • 如何设置将在 Facebook 上显示为预览的网站图像?

    当您在 Facebook 上分享链接时 它会自动在网站上查找图像并随机选择一张作为预览 如何影响预览图像 当一个人在他的 Facebook 上分享网站链接时 1 将 Open Graph XML 命名空间扩展包含到您的 HTML 声明中 2
  • 为什么背景图片没有填满整个div

    我有以下代码显示SPAN里面一个DIV然后另一个DIV在它下面显示一些文本 我遇到的问题是当我调整浏览器大小时 文本和背景图像变得不合适 这是图像未填满的屏幕截图DIV 另外 当我调整大小时 文本全部错位 这是 HTML div div d
  • 压缩图像使其小于 4KB

    我有一个人的图像 我想将其压缩以使其小于 4KB 我需要对其进行压缩 并且即使图像缩小 仍然可以识别人的脸部 这是特蕾莎 梅 Theresa May 142kB 并调整大小为 72x72 并转换为灰度并减少到 2kB图像魔术师在命令行 co
  • 合并 PDF iTextSharp

    我在网上查看了一些示例 并提出了使用 iTextSharp 合并 pdf 的代码 但我收到一个错误 该文档没有页面 它失败于页面 writer GetImportedPage reader X 这是堆栈跟踪 at iTextSharp te
  • 绘制圆圈(使用 for 循环在图像中应用的像素)

    我想使用像素位置 从左上角开始到右下角结束 绘制一个圆 带有 1 或 2 个 for 循环 我用这个方法成功绘制了一个矩形 private void drawrect int width int height int x int y int
  • 无需打开即可打印 PDF

    我想要构建的是 通过单击按钮 我想触发 PDF 文件的打印 但不打开它 Print PDF Click gt printPdf pdfUrl 我第一次尝试的方法是使用 iframe var iframe null This is suppo
  • DropDelegate Safari 拖动图像

    我正在尝试实施DropDelegate模式以允许将图像拖到我的视图中并加载它们 这对于取景器中的图像效果很好 但是当将图像从 safari 拖到我的视图中时 这不起作用 我注意到typeIdentifier or UTType所提供的信息
  • 在php中将png合并到多边形上

    我很困惑 我尝试简单地绘制一个多边形并放在上面 就像一个带有透明度的 png 图层一样 没有任何成功 一次背景是黑色的 一次多边形变得不可见 这是我的 php 代码 header Content type image png The png
  • SVG 线条描边-dasharray 无法正确打印为 PDF

    打印行与stroke dasharrayPDF 创建不同的行为 请 看着那 这image https i stack imgur com doOku png here 图A 我直接从浏览器 Chrome 获取的屏幕截图 图B是同一页面的打印
  • 图片框图像缩放

    我在 C 中遇到图像缩放问题 我有一个给定尺寸的图片框 例如宽度 800 像素 高度 600 像素 我正在将不同的图像加载到该图片框中 小图像 400x400 和大图像 800 x 600 如果我的图像不适合盒子 它们就会被调整大小 但他们
  • OS X Homebrew 安装时缺少 Imagemagick jpeg 解码委托

    我最近从 macports 转换为 homebrew 之前的 macports Imagemagick 安装运行良好 我按照自制程序说明 chown usr local 有点担心 并删除 usr local include 和 usr lo
  • 我想知道像tineye.com这样的反向图像搜索服务是如何工作的......?

    像 TinEye 这样的反向图像搜索引擎如何工作 我的意思是进行图像搜索需要哪些参数 不知道 TinEye 是否使用这个 但是SURF http en wikipedia org wiki SURF是用于此目的的常用算法 在这里您可以看到一
  • 如何在 Windows 上以编程方式将 SVG 转换为 PDF?

    我希望在服务器上以编程方式将 SVG 转换为 PDF 文档 在 Windows 上执行此操作有哪些选项 我看过链接Inkscape http www inkscape org Batik http xmlgraphics apache or
  • 如何修复此错误“GDI+ 中发生一般错误”?

    从默认名称打开图像并以默认名称保存 覆盖它 我需要从 Image Default jpg 制作图形 将其放在 picturebox1 image 上并在 picurebox1 上绘制一些图形 它有效 这不是我的问题 但我无法保存 pictu

随机推荐

  • 为什么属性不自动合成

    也许这是一个愚蠢的问题 每次我做一个 property我必须 synthesize它 但这毫无意义 你唯一能做的就是 property whatever Type property就是要做 synthesize property在实施文件中
  • 如何发出委托或 lambda 表达式

    我想发出一个返回 Function 的方法 在这个方法中 我必须创建一个委托或一个正好服务于返回类型的 lambda 表达式 总的来说 它应该看起来像这样 I have a resolve method that will be calle
  • 如何使用 htaccess 文件在 php 中重写 URL。 php代码有什么变化

    我是 htaccess 文件的新手 我正在网上搜索 但我无法在 PHP 中更改和重写 URL 例如 显示网址如 本地主机 web site view project php vp 14 我想显示我的网址 本地主机 网站 网站 项目 14 在
  • 圆角、矩形按钮

    我有兴趣制作一个类似于主页上的按钮的 html 按钮https new myspace com 我知道 html 看起来像这样
  • 如何获取所有用户所有公共仓库中Github的实时推送事件?

    我看过GET events但它返回所有事件 而不仅仅是我感兴趣的推送事件 我读过有关 webhooks 的内容pushEvent特别是 但可以配置为仅存储库 以便在推送到该存储库时收到通知 但我希望获得来自所有用户的所有公共存储库中的所有推
  • WebBrowser 控件 WPF 中的脚本错误

    当我使用 wpf 处理 webBrowser 控件时出现 脚本错误 之类的错误 即使我在这里粘贴了屏幕截图 甚至一些 jquery UI 和 css 也不起作用 我也面临这个问题 我需要创建浏览器应用程序 网络上有很多 Jquery JSO
  • 为什么bottom:0 不能与position:sticky 一起使用?

    我试图了解 css 粘性 的作用 我可以让它粘在其父级的 顶部 但还没有到 底部 我的测试代码是 block background pink width 50 height 200px move position sticky bottom
  • 使用 XSD 文件生成 XML 文件

    如何从 XSD 文件生成 XML 文件 假设我们有 Test xsd 文件 如下所示
  • 未捕获的类型错误:elem.nodeName.toLowerCase 不是函数 Jquery

    我正在开发一个项目 该项目运行良好 但今天突然显示类型错误 未捕获的类型错误 elem nodeName toLowerCase 不是函数 Jquery 下面是我收到错误的代码 A method for determining if a D
  • 如何点击更改模型的颜色,然后将其改回原来的颜色?

    我正在尝试在 ARKit 中创建一个功能 如果用户点击 modelEntity 它的颜色就会更改为蓝色 这样就表明它已被选中 但是 如果用户点击另一个实体 则先前选择的实体的材质会变回选择之前的状态 所以我可以用这段代码改变它的颜色 let
  • boost RNG 的线程安全

    我有一个循环 应该通过插入一个 openmp pragma 来很好地并行化 boost normal distribution
  • MATLAB - 从 jpeg_write.c 创建 maxmaci64 时出错

    我在使用来自 jpeg 工具箱的 jpeg read c 和 jpeg write c 的 Mex 制作 mexmaci64 文件时遇到问题 我问了我的问题herejpeg read 的问题解决了 但当我编译jpeg write c时仍然有
  • 如何使用jquery Ajax函数在IE浏览器中读取xml数据

    我需要在 AJAX 函数中使用 jquery 读取 xml 数据 这在 firefox 中工作正常 但是我被 IE 浏览器困住了 我无法读取 xml 程序需要从 xml 文件中读取 proptype 我有放置警报警报 theXml 但在 I
  • 如何在循环中使用 writeHexByte 显示到屏幕上?

    我在启动时显示了 displayChar 字符 现在我如何添加 writeHexBytes 然后在循环中使用 writeHexByte 和 writeHexWord 在屏幕上显示 写入十六进制字节 需要一个 8 位寄存器 通过调用显示它 转
  • Java:查找文件的最后一行是否为空

    我有一个关于需要用 Java 完成的学校作业的问题 我需要从文件加载数据并检查这些文件中的错误 我用 a 读取了该文件bufferedReader它完美地工作到文件末尾 如果最后一行为空 它会忽略该行 我知道如何检查空行 但最后一行根本没有
  • 运行循环实际上是如何工作的

    这个月初我问了这个问题 什么是运行循环 在阅读了答案并做了一些尝试后 我让它工作了 但我仍然不完全理解它 如果运行循环只是与线程关联的循环 并且它不会在幕后生成另一个线程 那么我的线程 主线程以保持简单 中的任何其他代码如何执行而不会被 阻
  • 如何在 Spring Jms Tibjms 中在多个虚拟机之间共享发布在主题上的消息

    我的应用程序正在使用发布到主题的消息 我有 3 台服务器 我的应用程序代码正在运行 在当前的实现中 消息被分发到所有正在运行的虚拟机 即每个消费者都会收到消息的副本 我的要求是每个消费者都应该收到不同的消息 即没有两个消费者应该收到相同的消
  • 在 CSS3/HTML5 中使用自定义字体?

    我的 CSS 样式表开头有这段代码 当然链接到我的 index html font face font family Calibri src local Calibri local Calibri url fonts Calibri Bol
  • React Router 默认路由重定向到 /home

    我对反应以及我选择使用的路由器和引导程序库非常陌生 它们基本上只是react router bootstrap 我只是对事物有了一些感觉 我想制作一个具有一些基本 url 导航的网络应用程序 我有 4 个部分 主页浏览添加和关于 单击链接效
  • 将 PDF 转换为 PNG

    我正在尝试将 PDF 转换为 PNG 图像 至少是一个封面 我已经使用 pdftk 成功提取了 PDF 的第一页 我正在使用 imagemagick 进行转换 convert cover pdf cover png 这是可行的 但不幸的是