问题背景
媳妇平时需要制作课件,下载收费,自己做又太浪费时间。试用了几个下载器,大概摸清了工作原理,打算自己写个脚本。大部分文库网页显示的PPT都是纯图片(爬取源文件有一定技术难度),生成ppt的一种常用的方法是爬取这些图片保存到本地,再批量导入到ppt中。导入word的操作类似。爬取部分就不写了,已经写过几个类似的。因为word和ppt文档跨设备跨平台时会出现显示异常的情况,这时需要转为pdf再使用。在移动端(手机)上使用时,往往图片比文件方便快捷。实现导出pdf很简单,ppt也支持导出图片,调用com接口在后台导出即可。剩下要解决的便是如何实现docx、pdf转图片,快速浏览了下网友们分享的源码,暂时还没发现一个很好的解决方案。
既然有现成的转换器和下载器,为什么还要重复造轮子?
答:主要有两点原因,分辨率和使用次数有限制,解除限制需要充钱;有的会强制要求关注公众号、下载捆绑软件等。
思路
- 批量图片导入ppt
- 批量图片导入word
- ppt、word文档转pdf
- ppt转图片
- pdf转图片
- ppt转长图
以下是没有写完的代码,以后有时间再来完善,如果还有心思写文章的话。
未写完的代码
import os
# import sys
import win32com
from comtypes.client import CreateObject
from win32com.client import gencache, constants
from docx import Document
from docx.shared import Cm, Inches, Pt
from PIL import Image
# method one
class Conversion:
def __init__(self):
self.word_format_pdf = 17
self.word_to_pdf = CreateObject("Word.Application", dynamic=True)
self.ppt_format_pdf = 32
self.ppt_to_pdf = CreateObject("Powerpoint.Application", dynamic=True)
self.ratio = 29.7 / 21
# self.ppt_to_pdf.Visible = True
def conversion(self, load, mode=None):
files = os.listdir(load := os.path