环境和准备工作
python3安装好以后,直接:
pip3 install -i https://mirrors.aliyun.com/pypi/simple/ py3office
环境准备若有问题,可以访问: https://zxl20070701.github.io/notebook/#/life/office/python3/...
单个文件
直接转图片
比如我们有一个pdf文件:demo.pdf,希望转成图片:
#!/usr/bin/python3
# coding=utf-8
from py3office import pdf
pdf.toImage("./demo.pdf", "./")
运行之后,就可以看见当前目录下多了一张图片:demo.jpg。
修改图片名称
那如果想自定义生成后的图片名称怎么办?比如图片名称希望是picture.jpg,修改代码为:
#!/usr/bin/python3
# coding=utf-8
from py3office import pdf
def getName(name, texts, index, total):
return "picture"
pdf.toImage("./demo.pdf", "./", getName)
根据pdf内容确定图片名称
有时候,我们图片的名称可能希望根据pdf中的内容进行确定,比如pdf截图如下:
修改一下代码如下,打印一下当前pdf中的内容:
#!/usr/bin/python3
# coding=utf-8
from py3office import pdf
from py3office import handler
def getName(name, texts, index, total):
handler.printList(texts)
return "picture"
pdf.toImage("./demo.pdf", "./", getName)
打印结果如下:
[0] 介绍
[1] 你可以用来干什么?
[2] VISLite 贡献指南
[3] 你可以用来干什么?
[4] 顾名思义,这是一个轻量级的数据可视化资源库,所以,我们的目
[5] 标是:帮助你更快速、简单、高效的开发出任意的可视化业务产品。
[6] 当然,这并不是一件非常容易的事情,但我们会逐步完善和改进。
[7] 常用的算法
[8] 我们通过提供可视化常用的算法来帮助你绘制复杂图表。比如下面
......
比如我们想取[2] VISLite 贡献指南为图片名称,那么代码就变成了:
#!/usr/bin/python3
# coding=utf-8
from py3office import pdf
from py3office import handler
def getName(name, texts, index, total):
return texts[2]
pdf.toImage("./demo.pdf", "./", getName)
这样,pdf就被转成了图片:VISLite 贡献指南.jpg。
批量处理
比如当前目录下有一个文件夹pdf,里面有很多pdf文件,目录结构如下:
- pdf
- 身份证(正面).pdf
- 身份证(正面).pdf
- 银行卡
- 中国银行卡.pdf
我们希望把其中的所有pdf都变成图片(保持原来的目录结构):
#!/usr/bin/python3
# coding=utf-8
from py3office import pdf
from py3office import handler
sourcePath = "./pdf"
targetPath = "./image"
def doit(fileInfo):
if fileInfo["path"].endswith(".pdf"):
def getName(name, texts, index, total):
return name
pdf.toImage(
fileInfo["path"],
fileInfo["folder"].replace(sourcePath, targetPath),
getName,
)
handler.listFile(sourcePath, doit)
运行后会在当前目录多一个文件夹image,目录结构如下:
- image
- 身份证(正面).jpg
- 身份证(正面).jpg
- 银行卡
- 中国银行卡.jpg
温馨提示:对于单个文件中对图片名称的说明,这里类似的直接修改getName返回值也是可行的。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。