Python实现文字pdf转换图片pdf效果
前言
为什么会做这个?
因为我们把word转化为pdf,wps默认转化为文字pdf,而图片pdf要会员。
网上确实也有网站可以实现免费的,但是未必安全。
思路
我看了网上的很多代码,都是先把文字pdf先转化为图片,然后再组装成pdf文档。我的思路也是这样的。
但是我和他们很大的不一样就是,我不需要先把图片保存起来再提取,而我只需要把图片的信息先存起来,再输出pdf。
代码展示
先安装依赖
pip install PyMuPDF
输入文件列表
import os
import fitz
def single_wordpdf_to_imgpdf(pdf_path: str):
pdf = fitz.open(pdf_path) # 打开pdf目录
pdf_img = fitz.open() # 打开空文件,用来存图片pdf
for page_inf in pdf:
definition = 3 # 清晰度,感觉输出的pdf不够清晰,可以调大,调大,文件大小也会变大
matrix = fitz.Matrix(definition, definition)
img = page_inf.get_pixmap(matrix=matrix).tobytes()
img = fitz.open("png", img)
pdf_bytes = img.convert_to_pdf()
pdf_img.insert_pdf(fitz.open("pdf", pdf_bytes))
pdf_img.save("图片pdf_" + os.path.basename(pdf_path))
def group_wordpdf_to_imgpdf(path_array: list[str]):
for pdf_path in path_array:
print(pdf_path, "转换中...")
single_wordpdf_to_imgpdf(pdf_path)
print("完成")
if __name__ == '__main__':
path = ["xxx.pdf"]
group_wordpdf_to_imgpdf(path)
输入文件夹
import os
import fitz
import time
def single_wordpdf_to_imgpdf(pdf_path: str):
pdf = fitz.open(pdf_path) # 打开pdf目录
pdf_img = fitz.open() # 打开空文件,用来存图片pdf
for page_inf in pdf:
definition = 3 # 清晰度,感觉输出的pdf不够清晰,可以调大,调大,文件大小也会变大
matrix = fitz.Matrix(definition, definition)
img = page_inf.get_pixmap(matrix=matrix).tobytes()
img = fitz.open("png", img)
pdf_bytes = img.convert_to_pdf()
pdf_img.insert_pdf(fitz.open("pdf", pdf_bytes))
if not os.path.exists("output"):
os.makedirs("output") # 处理好的pdf存入了output目录下 #
pdf_img.save("output/图片pdf_" + os.path.basename(pdf_path))
def group_wordpdf_to_imgpdf(path_array: list[str]):
for pdf_path in path_array:
print(pdf_path, "转换中...")
single_wordpdf_to_imgpdf(pdf_path)
print("完成")
def folder_pdf_files(folder: str) -> list[str]: # 一个文件夹里面有多少pdf文件
file_list = []
for a, b, c in os.walk(folder):
if b == []:
for filename in c:
if filename[-3:].lower() == 'pdf':
file_path = os.path.join(a, filename)
file_list.append(file_path)
print(folder, ": 有", len(file_list), "个pdf文件")
return file_list
if __name__ == '__main__':
time_start = time.time()
path_list = folder_pdf_files("目录")
group_wordpdf_to_imgpdf(path_list)
time_end = time.time()
print("程序运行时间:", round(time_end - time_start, 2), "秒")
到此这篇关于Python实现文字pdf转换图片pdf效果的文章就介绍到这了,更多相关Python 文字pdf转图片pdf内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Python OpenCV超详细讲解读取图像视频和网络摄像头
OpenCV用C++语言编写,它具有C ++,Python,Java和MATLAB接口,并支持Windows,Linux,Android和Mac OS,OpenCV主要倾向于实时视觉应用,并在可用时利用MMX和SSE指令,本篇文章带你了解OpenCV读取图像视频与网络摄像头的方法2022-04-04
Anaconda中利用conda创建、激活、删除、添加新环境
在使用Python开发项目或者编写脚本的时候通常需要建立不同版本的Python的虚拟环境,本文主要介绍了Anaconda中利用conda创建、激活、删除、添加新环境,具有一定的参考价值,感兴趣的可以了解一下2024-04-04
Python中getattr函数和hasattr函数作用详解
这篇文章主要介绍了Python中getattr函数和hasattr函数作用的相关知识,非常不错具有参考借鉴价值,需要的朋友可以参考下2016-06-06
python3+requests接口自动化session操作方法
今天小编就为大家分享一篇python3+requests接口自动化session操作方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2018-10-10


最新评论