有没有办法用golang将PDF转换为jpeg?
Posted
技术标签:
【中文标题】有没有办法用golang将PDF转换为jpeg?【英文标题】:Is there any way converting a PDF to jpeg with golang? 【发布时间】:2019-09-24 11:12:07 【问题描述】:我目前正在将我的“旧”基于 Python 的聊天机器人重写为 golang。 我遇到的一个问题是我无法将 PDF 转换为 jpeg。我想这样做,以便可以轻松地将其发送到聊天中。
已经尝试过 bimg(根本不起作用)和 imagemagick(gopkg.in/gographics/imagick.v3/imagick),正如另一个线程的答案中提供的那样:“https://***.com/a/47520596/7502507”
imagick.Initialize()
defer imagick.Terminate()
mw := imagick.NewMagickWand()
defer mw.Destroy()
mw.ReadImage(pdf)
mw.SetIteratorIndex(0) // This being the page offset
mw.SetImageFormat("jpg")
mw.WriteImage(image)
它根本不会生成 jpg,它只是给我一个错误
ERROR_POLICY: attempt to perform an operation not allowed by the security policy `PDF' @ error/constitute.c/IsCoderAuthorized/408
我怎样才能做到这一点?我似乎无法为此编辑安全设置。
感谢任何帮助!
【问题讨论】:
也许可以通过提升权限来解决问题? 显然是由于Ghostscript中的错误,您必须修改您policy.xml
或更新Ghostscript包(已发布修复):***.com/questions/52998331/…
【参考方案1】:
我也遇到过同样的问题,但没有找到任何纯 Golang 解决方案。
不是纯 Golang 解决方案,但 this 在内部使用 cgo 可以完美运行。底层库是Pdfium,它是一个 C++ 库,由 Google 开发并在 Chrome 中使用。
经过大量研究,我发现 Pdfium 在速度、稳健性、许可要求和可靠性方面是同类产品中最好的。
为了提高操作的整体性能,我最终使用了 this 编码器,因为 Golang 的图像编码器不针对性能,而是 slow。
【讨论】:
以上是关于有没有办法用golang将PDF转换为jpeg?的主要内容,如果未能解决你的问题,请参考以下文章
使用免费的 c# 解决方案将 pdf 转换为 jpeg [关闭]
Imagick 无法将 PDF 转换为 JPEG,但 ImageMagick 可以