自动化小工具
Posted 程序猿小火龙
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自动化小工具相关的知识,希望对你有一定的参考价值。
目录
背景引入
在日常生活中,我们会遇到许多格式转化的问题,比如PDF转图片,或者Word转PDF等。这个时候我们往往会借助一些搜索引擎的在线工具或者是一些外部软件来进行转换,然而许多的在线工具由于迫于服务器的压力与成本的原因,会对用户进行收费或者限制上传文件的大小,据我调查大部分软件也是如此,会要求用户开通vip才能免费畅享无限制转化功能。
其实他们这么做不是没有原因的,因为用户群体的庞大,考虑到算力成本的原因,而我们本地的计算机并不需要多线程同时转换许多大型文件,所以我想与大家分享一款,只要电脑本地有python环境就能实现自动化转换的小工具。
环境准备
- 首先本地电脑必须安装python环境,在官网下载包(建议不要选择最新版,3.6以上即可,会有兼容性问题),安装时参考其他博主的安装教程“傻瓜式”安装即可。
- 安装一个Python外部库
pip install fitz
如果出现这样的报错信息“RuntimeError: Directory 'static/' does not exist”,就说明是你Python版本兼容的问题,执行以下命令即可
pip uninstall fitz pip install pymupdf
库的简介
这个库的标准Python导入语句是import fitz。这是有历史原因的:MuPDF的原始渲染库被称为Libart。
在Artifex软件获得MuPDF项目后,开发的重点转移到编写一种新的现代图形图书馆称为“Fitz”。Fitz最初是作为一个研发项目,以取代老化的Ghostscript图形库,但却成为了MuPDF的渲染引擎(引用自维基百科)。
将pdf
转为图片实例代码与详解
首先读取你要转成图片的PDF,利用库函数get_pixmap()创建对象:pix是一个Pixmap对象,它(在本例中)包含页面的RGB图像。get_pixmap()提供了许多用于控制图像的变体:分辨率、颜色空间(例如,生成灰度图像或具有减色方案的图像)、透明度、旋转、镜像、移位、剪切等。
例如:创建RGBA图像(即,包含alpha通道),指定pix=page.get_pixmap(alpha=True)。
Pixmap包含以下引用的许多方法和属性。其中包括整数宽度、高度(每个像素)和跨距(一个水平图像行的字节数)。属性示例表示表示图像数据的矩形字节区域(Python字节对象)。
import fitz
def pdf_to_images(pdf_file):
doc = fitz.open(pdf_file) # 打开PDF文件
for p in doc: # 逐页读取PDF
pix = p.get_pixmap() #pix是一个Pixmap对象,它(在本例中)包含页面的RGB图像,可进行多种操作
output = f"pagep.number.png"# 第1张图片名:1.png,以此类推
pix.save(output)# 保存
pdf_to_images("test.pdf")
最终效果
题外话
刚刚开始接触写博客,欢迎大家在评论区指正、提问、分享。一起进步!喜欢的话也可以点个赞鼓励一下博主!!😊😛👍👉💓👈!!!
以上是关于自动化小工具的主要内容,如果未能解决你的问题,请参考以下文章
AC日记——字符串最大跨距 openjudge 1.7 26
golang 用指定的字符串在文本中包装一些跨距(用于突出显示搜索结果)