嗨你好,我是 Grey,一名重度双语学习者,会一点编程,目前已翻译出版《Python 无师自通》、《Python 并行编程手册》等书籍。我会持续关注国内外最新资讯,并分享发现有助于工作和学习的各种工具、技巧和资源,希望能够帮助到你。
如果你有什么想要了解或咨询的话题,欢迎在下方留言告诉我。
前段时间发小红书,试了一些作图的网站,但是发现还是PPT简单好用。唯一的不足就是我用的是Windows版的WPS,免费版本会加上让人眩晕的水印,赤裸裸地要你充会员费。

如果对WPS的会员功能不感冒,那我们还有哪些免费的选择呢?我尝试过几个方案,这里分享给大家参考。
Mac版的WPS中,目前是免费支持PPT转换成图片保存,但是清晰度不高。咱们不可能为了转个图片就换电脑,这个就不作为替代方案了。
1、复制粘贴大法
直接在PPT中选中你想要转换的页面,然后复制粘贴到微信或钉钉中,发送。你会发现PPT页面已经被自动转为图片了,这时我们再把图片下载到本地即可。

这个方案不需要大家安装任何其他的软件,电脑上应该有微信或钉钉等应用。但是如果你有很多页面需要转换,或者说你计划长期用PPT来设计分享图,日积月累下来还是比较浪费时间的。
整个流程下来,需要手动做4-5步操作,一个10页的PPT就需要你花1分多钟来做转换。
实在是费时费力!
2、切换到Powerpoint另存为图片
这是目前最简单的方案了,只需要3个动作就可以完成整个PPT的转化:点击开始-另存为-下载为图像。
不管页数多少,而且图片的清晰度也足够高。


如果你和我一样,因为版权等原因没有安装微软的Office套件,那么现在可以选择使用在线的Office 365,只需要一个微软的账号就可以了。
我是直接将PPT文件放在了OneDrive里,然后在网页端打开PPT文件就可以了。
如果你没有条件走方案2,那还有什么选择呢?
3、在线PPT转JPG网站

现在网络上有很多在线文档转化的网站,PPT转图片的也有不少,这种网站的免费服务一般都有数量和文件大小的限制,不过基本能满足需求。
我用上图网站实测之后,发现转换后的图片文件过大,基本上是PowerPoint另存版本的3倍左右,而且文件名是随机生成的长字符串,不方便我们识别页面顺序。

4、Python大法
我试着用Python尝试直接从PPTX文件转为图片,但是选用的那个第三方库似乎是要收费的,而且安装包非常大。

试着用作者提供的代码转换后,发现生成的是缩略图,而且加上了版权水印。即使研究代码把清晰度调整后,水印的问题还是无解。
import aspose.slides as slides
import aspose.pydrawing as drawing
# Load presentation
pres = slides.Presentation("英文对话01.pptx")
# Loop through slides
for index in range(pres.slides.length):
# Get reference of slide
slide = pres.slides[index]
# Save as JPG
slide.get_thumbnail().save("slide_{i}.jpg".format(i = index), drawing.imaging.ImageFormat.jpeg)
因为暂时没找到其他更合适的方案,所以暂时放弃了从PPTX直接转成图片的想法。改为先在WPS中保存为PDF,然后再从PDF转换为图片。
这里就轮到Python处理PDF的神器 —— PyMuPDF 出场了。
从命名形式中就可以看出,PyMuPDF
是MuPDF
的Python
接口形式。MuPDF
是一个轻量级的 PDF、XPS
和电子书查看器。MuPDF
由软件库、命令行工具和各种平台的查看器组成。
MuPDF
中的渲染器专为高质量抗锯齿图形量身定制。它以精确到像素的几分之一内的度量和间距呈现文本,以在屏幕上再现打印页面的外观时获得最高保真度。
在 Windows 上安装这个库还是挺容易的,Mac 上就有点复杂,当时安装出了不少报错,这个就不多说了。通过 PyMuPDF 转换 PDF 为图片的代码也比较简单,只需要读取整个文件,然后一页一页的读取并保存为图片即可。
代码如下:
import fitz
pdffile = "英文对话01.pdf"
doc = fitz.open(pdffile)
page_count = doc.page_count
for i in range(0, page_count):
page = doc.load_page(i) # number of page
pix = page.get_pixmap(dpi=300)
output = "images/page_%s.png" % i
pix.save(output)
doc.close()
以上就是免费替代 WPS 转图片功能的一些方案,如果你有更好的方案,欢迎在评论区留言和大家一起分享。
往期推荐: