imagemagick - ImageMagick 生成损坏的 PDF 文件
问题描述
当我尝试通过执行命令使用 ImageMagick 将图像转换为 PDF 时
mogrify -format pdf ImageMagick.png
生成的 PDF 已损坏。当我尝试使用 MuPDF 打开它时,它失败了:
error: cannot recognize version marker
warning: trying to repair broken xref
warning: repairing PDF document
error: name too long
warning: skipping ahead to next token
error: invalid key in dict
error: invalid key in dict
error: name too long
warning: skipping ahead to next token
error: no objects found
mupdf: error: cannot open document
ImageMagick 使用-verbose
-flag 的输出是:
ImageMagick.png PNG 600x621 600x621+0+0 8-bit sRGB 123261B 0.020u 0:00.009
ImageMagick.png=>ImageMagick.pdf PNG 600x621 600x621+0+0 8-bit sRGB 122974B 0.070u 0:00.060
PDF 文件的问题似乎是,文件的第一个字节不是%PDF-
.
这是生成的PDF
我的系统:
- Arch Linux
- ImageMagick 7.0.8-8 Q16 x86_64 2018-08-01(通过执行安装
pacman -S imagemagick
)
解决方案
问题是,ghostscript
没有安装。未安装 ghostscript 时,ImageMagick 似乎不会引发错误。
要安装 ghostscript 使用
pacman -S ghostscript
推荐阅读
- ios - 纵向和横向模式的不同 UITableViewCell
- javascript - 如何防止在django中重新加载html页面
- c++ - 如何将字符串分配给 char 变量?
- c# - automapper.extensions.microsoft.dependencyinjection 和 automapper nuget 包有什么区别?
- apache-camel - Apache Camel pollEnrich 在 JMSCorrelationID 上使用选择器
- validation - 在 SwiftUI 中为 TextField 添加前缀
- html - 更改跨度检查图标为保存图标
- sqlite - 在 SQLite 中使用带有自动增量键的 upsert 时如何避免使用 key-id?
- android - Flutter:Firestore 事务崩溃 Android 仿真
- tensorflow - 使用 TensorRT (TF-TRT) 将 tensorflow saved_model 从 float32 转换为 float16 时出现问题