pdf保存为img

简介: 【9月更文挑战第06天】

-- coding: utf-8 --

import os
import fitz
import PyPDF2
import aspose.pdf as ap

--------------------------------------通过转换图片实现压缩------------------------------------

def convert_img(path1, dpi, work_path):
file = fitz.open(path1)
page_count = file.page_count
if os.path.exists(work_path): # 临时文件夹,需要为空
os.removedirs(work_path)
os.mkdir(work_path)
for i in range(page_count):
page = file[i]
dpi = int(dpi) # 值越大,分辨率越高,文件越清晰
rotate = int(0)
print(page)
trans = fitz.Matrix(dpi / 100.0, dpi / 100.0).prerotate(rotate)
pm = page.get_pixmap(matrix=trans, alpha=False)
img_path = work_path + '/%s.jpg' % str(i + 1)
pm.save(img_path) # 保存为图像文件
file.close()

def img_for_pdf(path1, path2, work_path):
file1 = fitz.open(path1)
page_count = file1.page_count
file2 = fitz.open()
for i in range(page_count):
img_path = work_path + '/%s.jpg' % str(i + 1)
img = fitz.open(img_path) # 打开图片
pdf = img.convert_to_pdf() # 使用图片创建单页的PDF
os.remove(img_path)
pdf_temp = fitz.open("pdf", pdf)
file2.insert_pdf(pdf_temp) # 将当前页插入文档
if os.path.exists(path2): # 若文件存在先删除
os.remove(path2)
file2.save(path2) # 保存PDF文件
file2.close()

def Compress_by_img(path1, path2, dpi, work_path):
"""
:param path1: 需要压缩的pdf文件路径
:param path2: 保存的pdf文件路径
:param dpi: 分辨率
:param work_path: 临时工作路径
:return: None
无水印,效果较好!
"""
convert_img(path1, dpi, work_path)
img_for_pdf(path1, path2, work_path)
os.removedirs(work_path)

if name == "main":
url = "D:\BaiduNetdiskDownload\Download\dd.pdf"
work_path1 = r'D:\BaiduNetdiskDownload\Download.pdf'
in_path = r"D:/BaiduNetdiskDownload/Download/dd.pdf" # 需要压缩的PDF文件
out_path = r"D:\BaiduNetdiskDownload\Download\11.pdf" # 压缩后的PDF文件路径
zoom = 1500 # 清晰度调节,缩放比率
Compress_by_img(in_path, out_path, zoom, work_path1)

相关文章
Vue~在线预览doc、docx、pdf、img文件
Vue~在线预览doc、docx、pdf、img文件
6916 0
如何将 Swagger 文档导出为 PDF 文件
你会发现自己可能需要将 Swagger 文档导出为 PDF 或文件,以便于共享和存档。在这篇博文中,我们将指导你完成将 Swagger 文档导出为 PDF 格式的过程。
|
13天前
|
C#
【PDF提取内容改名】批量提取PDF指定区域内容重命名PDF文件,PDF自动提取内容命名的方案和详细步骤
本工具可批量提取PDF中的合同编号、日期、发票号等关键信息,支持PDF自定义区域提取并自动重命名文件,适用于合同管理、发票处理、文档归档和数据录入场景。基于iTextSharp库实现,提供完整代码示例与百度、腾讯网盘下载链接,助力高效处理PDF文档。
133 40
如何利用Python批量重命名PDF文件
本文介绍了如何使用Python提取PDF内容并用于文件重命名。通过安装Python环境、PyCharm编译器及Jupyter Notebook,结合tabula库实现PDF数据读取与处理,并提供代码示例与参考文献。
Python爬虫结合API接口批量获取PDF文件
Python爬虫结合API接口批量获取PDF文件
使用CodeBuddy实现批量转换PPT、Excel、Word为PDF文件工具
通过 CodeBuddy 实现本地批量转换工具,让复杂的文档处理需求转化为 “需求描述→代码生成→一键运行” 的极简流程,真正实现 “技术为效率服务” 的目标。感兴趣的快来体验下把
109 10
【全自动改PDF名】批量OCR识别提取PDF自定义指定区域内容保存到 Excel 以及根据PDF文件内容的标题来批量重命名
学校和教育机构常需处理成绩单、报名表等PDF文件。通过OCR技术,可自动提取学生信息并录入Excel,便于统计分析和存档管理。本文介绍使用阿里云服务实现批量OCR识别、内容提取、重命名及导出表格的完整步骤,包括开通相关服务、编写代码、部署函数计算和设置自动化触发器等。提供Python示例代码和详细操作指南,帮助用户高效处理PDF文件。 链接: - 百度网盘:[链接](https://pan.baidu.com/s/1mWsg7mDZq2pZ8xdKzdn5Hg?pwd=8866) - 腾讯网盘:[链接](https://share.weiyun.com/a77jklXK)
540 5
【图片型PDF】批量识别扫描件PDF指定区域局部位置内容,将识别内容导出Excel表格或批量改名文件,基于阿里云OCR对图片型PDF识别改名案例实现
在医疗和政务等领域,图片型PDF文件(如病历、报告、公文扫描件)的处理需求广泛。通过OCR技术识别这些文件中的文字信息,提取关键内容并保存为表格,极大提高了信息管理和利用效率。本文介绍一款工具——咕嘎批量OCR系统,帮助用户快速处理图片型PDF文件,支持区域识别、内容提取、导出表格及批量改名等功能。下载工具后,按步骤选择处理模式、进行区域采样、批量处理文件,几分钟内即可高效完成数百个文件的处理。
596 8
OCRmyPDF:16.5K Star!快速将 PDF 文件转换为可搜索、可复制的文档的命令行工具
OCRmyPDF 是一款开源命令行工具,专为将扫描的 PDF 文件转换为可搜索、可复制的文档。支持多语言、图像优化和多核处理。
727 17
OCRmyPDF:16.5K Star!快速将 PDF 文件转换为可搜索、可复制的文档的命令行工具
Zerox:AI驱动的万能OCR工具,精准识别复杂布局并输出Markdown格式,支持PDF、DOCX、图片等多种文件格式
Zerox 是一款开源的本地化高精度OCR工具,基于GPT-4o-mini模型,支持PDF、DOCX、图片等多种格式文件,能够零样本识别复杂布局文档,输出Markdown格式结果。
556 4
Zerox:AI驱动的万能OCR工具,精准识别复杂布局并输出Markdown格式,支持PDF、DOCX、图片等多种文件格式