最近做了个在线预览的需求

步骤  office->pdf->jpg

工具 : office 转 pdf https://github.com/gotenberg/gotenberg

pdf 转 jpg https://imagemagick.org/

office转pdf直接启动一个docker容器去转换,通过channel控制并发数量,并发数量太多会导致内存不够,转换失败

docker run --rm -p 3000:3000 gotenberg/gotenberg:7

pdf转jpg直接 通过go执行cmd方式转换

convert -density 100 -quality 100 -background white -alpha remove "./test.pdf" ./test/test.jpg

density 图片密度(数值越大,需要内存越高,图片效果越好)  quality(0-100)图片质量

为了提升图片转换效率,先获取pdf总页数,然后通过go channel 控制并发数量,一页一页转换

func getPdfPages(filePath string) (int, error) {if out, err := exec.Command("identify", filePath).Output(); err != nil {return 0, err} else {slice := strings.Split(strings.TrimSpace(string(out)), "\n")return len(slice), nil}
}
convertPageLimitChan := make(chan struct{}, 15)
defer close(convertPageLimitChan)
var eg errgroup.Group
for i := 0; i < pages; i++ {convertPageLimitChan <- struct{}{}page := ieg.Go(func() error {defer func() {<-convertPageLimitChan}()cmd := exec.Command("convert", "-density", "100", "-quality", "100", "-background", "white", "-alpha", "remove", fmt.Sprintf("%s[%d]", filePath, page), fmt.Sprintf("/tmp/%s/%s-%d.jpg", fileName, fileName, page))logger.Info(cmd.Args)cr := cmd.Run()return cr})
}
if er := eg.Wait(); er != nil {logger.Error("convert err: ", er)return
}

Imagemagick 使用相关推荐

  1. 在vc6控制台程序中如何调用运行ImageMagick命令行工具

    在http://www.imagemagick.org/script/index.php网站下载相应的执行文件,这里以下载ImageMagick-6.6.5-10-Q16-windows-static ...

  2. 如何运行ImageMagick的命令行工具

    在http://www.imagemagick.org/script/index.php网站下载相应的执行文件,这里以下载ImageMagick-6.6.5-10-Q16-windows-static ...

  3. php ImageMagick扩展

    linux下安装php ImageMagick扩展模块 下载ImageMagick源码包: #wget ftp://ftp.u-aizu.ac.jp/pub/graphics/p_w_picpath/ ...

  4. ImageMagick简单记录

    一.安装 mac下的安装非常简单 brew search ImageMagick brew install xxx 安装后,可验证 magick logo: logo.gif identify log ...

  5. 在 Linux 中使用ImageMagick命令行操作图像文件

    使用 convert 命令,可以无需打开图像编辑器进行修改图像文件.convert命令包含在ImageMagick安装包里. Centos8安装ImageMagick ImageMagick 可以安装 ...

  6. ImageMagick远程代码执行漏洞CVE-2016-8707 绿盟科技发布安全威胁通告

    在 ImageMagicks 的转换实用程序中, TIFF 图像压缩处理存在一个写边界的问题.攻击者利用一个精心编制的 TIFF 文件,可以导致的界限写,特别是可以利用的情况下进入远程执行代码.任何用 ...

  7. ImageMagick之PDF转换成图片(image)

    安装完ImageMagick之后,直接执行"magick convert f:\parseWord\tmp\testpdf.pdf f:\parseWord\tmp\testpdf.jpg& ...

  8. php imagemagick 漏洞,ImageMagick漏洞EXP简易生成脚本

    前几天看到爆出了关于ImageMagick的远程执行漏洞(CVE-2016-3714),所以为了Evil0x.COM核心成员使用,写了一个exp生成脚本供大家使用.(免责声明,出了事我不管) 总体来说 ...

  9. Learning ImageMagick 4: 批处理

    为什么80%的码农都做不了架构师?>>>    ImageMagick是拥有批处理能力的,比如如下命令: montage "*.jpg" -geometry 24 ...

  10. ImageMagick convert

    ImageMagick简介 ImageMagick是一个适用于创建.编辑和组合位图的软件.它能够读.写和转换超过百余种格式的图片. 另外,ImageMagick针对主流的编程语言都有借口,包括G2F ...

最新文章

  1. mysql创建表对经常要查询的列添加索引或者组合索引
  2. 11-Reliability, Availability, and Serviceability (RAS) Extensions
  3. Hashtable源码分析
  4. pdf 中添加文章操作
  5. 8位可控加减法器_自主可控:QTouch在军工道系统上的应用
  6. Python——集合字典解析的对象无序和无副本特性
  7. 跨专业留学学计算机硕士,跨专业申请中国香港计算机硕士需要注意哪些?
  8. java面试_数据库
  9. TimeLine下载地址
  10. expdp导出表结构_Oracle用exp导出部分表和expdp
  11. 货物与产品的区别_商品与产物的区别
  12. verifycode.php,verifycode.php
  13. WebStorm 汉化教程-Mac
  14. Gauss-Seidel迭代法解线性方程组
  15. 极验验证——滑块拼图验证码
  16. linux安装glib,glib源码安装使用方法
  17. 生容易,活容易,生活不容易
  18. 现在接受参加国际创业节 DOer Express的 申请
  19. 25款很好看的液晶数字字体下载
  20. 用计算机写作信息技术集体备课,信息技术集体备课总结

热门文章

  1. 求生之路2服务器ip直连,求生之路2不能联机_正版求生之路2好友直连显示该会话已不可用,无法联机...
  2. vue埋点 记录在前端页面停留时间
  3. CTFSHOW-SSTI
  4. pytest之fixture参数化
  5. 【驱动G631系列、J761系列伺服阀放大器】
  6. springboot 缓存一致性常用解决方案
  7. input 标签--multiple属性
  8. 《炬丰科技-半导体工艺》硅片清洗条件下薄氧化物特性的研究
  9. 只要有心,处处皆美景——南京清晨
  10. Wi-Fi 20mhz 和 40mhz 频段带宽的区别是什么? 图解