通过imagemagick将pdf转化为图片

通过imagemagick将pdf转化为图片

月光魔力鸭

2021-12-16 09:28 阅读 1054 喜欢 0 imagemagick pdf2img pdf转图片

通过gm 将pdf转化为图片

本身需求很简单,原本的流程是将pdf打印出来,然后涂写答案后,通过扫描仪扫描成图片,再进行上传操作。不过感觉太麻烦,想全部通过程序来搞定,需求就变成了将pdf转成图片,然后对图片进行程序填涂,然后提交.

找了一堆包发现大都基于gm来实现的

由于之前安装过imageMagick ,所以直接把代码拿过来运行,竟然报错。

Command failed: identify: FailedToExecuteCommand `"gswin64c.exe"

找资料说是缺少ghostscript ,又安装了之后才可以的。

资料

ghostscript : undefined pdf2img : undefined

代码

将pdf的第一页转化为图片

const gm = require('gm').subClass({ imageMagick: true })
let fs = require('fs');

let ips = fs.createReadStream('./1.pdf');
console.log(ips.path);
gm(ips, ips.path + '[0]').density(600, 600)
	.resize(1024)
	.quality(100)
	.write('./1.png', function (err, v) {
		console.log(err, v);
	})

整体来说,可行。但是效率有点太低..目前还没有找到好的解决方案,先用着这个。

转载请注明出处: https://chrunlee.cn/article/pdf-2-png-by-gm.html


感谢支持!

赞赏支持
提交评论
评论信息 (请文明评论)
暂无评论,快来快来写想法...
推荐
关于js的编译和压缩,之前做过一个小工具了,主要就是自己项目成员大都没有这部分的技能,导致发布的时候总需要去编译压缩下.. 最终做了个命令行小工具.. 问题不在这里,前一阵子做压缩的时候发现压缩后竟然是undefined.最终才发现是es6的语法问题。
前段时间做了个微信小程序反编译的小东西,不过因为功能不全,没加分包处理,正好处理下加上,又考虑到后续可能的更新情况,准备上手增加下更新功能。
最近有客户提出了这么一个需求:微信dat文件在解码后的图片无法按照时间进行排序。 是的,解码后的文件的时间都是解码的时间,由于软件比较多,当时没做自动更新,所以在这里做一个小工具,可以将对应的解码后的图片的时间修改为微信dat文件对应的时间
最近在折腾的时候又想写less了,但是换框架了,成了thinkjs,考虑到开发阶段一直编译编译less的情况..最终根据middleware的特点实现了一个超级简单的less中间件。
使用nodejs 连接mysql数据库还是很简单的,有现成的模块可以直接调用。下面介绍下 mysql 的调用
在使用marked来做md解析的时候,部分解析规则可能并不是很如意,比如说,我在md中写了a标签,但是这些标签都是在当前页面替换的,而我想要的是新打开窗口。
有一个需求,需要公司的LOGO信息,但是没有,只有公司的名字,想着先生成个默认的(本来是可以通过前端判断然后合成的..但是不想改小程序了),于是开始准备处理。
为什么要读取图片呢?需求来源于这里。我有一大堆的ppt文件,里面全是图片,想将这些图片全部拿到,然后存储在数据库中,在线上预览,一张张的保存我自然是不乐意的。