IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python PDF转图片 Word -> 正文阅读

[Python知识库]Python PDF转图片 Word

最近有相关需求就用Python做了一个PDF处理工具代码如下:

不想写代码的可以用打包好EXE

https://download.csdn.net/download/qq_36497454/53542250

# main.py
# Python3.x 导入方法

from window import MainWindow

main_window_class = MainWindow()

window = main_window_class.get_window()
# 进入消息循环
window.mainloop()



# MainWindow.py
# Python3.x 导入方法
import os
from tkinter import *
from tkinter import filedialog
from imageUtil import pyMuPDF_fitz
from wordUtil import PDFtoWord


class MainWindow:
    pdf_path: object

    def __init__(self):
        # 创建窗口对象的背景色
        self.pdf_path = None
        self.dir_path = None
        self.window = Tk()
        # self.window.attributes('-topmost', True)
        # 窗口名
        self.window.title('PDF文件转化器')
        # 几何位置
        self.window.geometry('600x400+50+100')
        # PDF文件标签
        self.pdf_lable = Label(self.window, text="PDF:")
        self.pdf_lable.place(x=100, y=25)
        # 文件文本框
        self.pdf_text = Text(self.window, bd=5, width=30, height=2)
        self.pdf_text.place(x=180, y=20)
        # 选择PDF文件按钮
        self.pdf_button = Button(self.window, text="选择PDF", width=10, command=self.set_pdf)
        self.pdf_button.place(x=440, y=20)

        # 目录标签
        self.dir_lable = Label(self.window, text="保存目录:")
        self.dir_lable.place(x=100, y=75)
        # 目录文本框
        self.dir_text = Text(self.window, bd=5, width=30, height=2)
        self.dir_text.place(x=180, y=70)
        # 选择图片目录按钮
        self.dir_button = Button(self.window, text="保存目录", width=10, command=self.set_dir)
        self.dir_button.place(x=440, y=70)

        # 转化按钮
        self.change_image_button = Button(self.window, text="生成图片", width=10, command=self.pdf_image)
        self.change_image_button.place(x=150, y=150)

        self.change_word_button = Button(self.window, text="生成word", width=10, command=self.pdf_word)
        self.change_word_button.place(x=450, y=150)

    def get_window(self):
        return self.window

    def set_pdf(self):
        # 获取所选文件
        self.pdf_path = filedialog.askopenfilename()
        self.pdf_text.delete(1.0, END)
        self.pdf_text.insert(1.0, self.pdf_path)

    def set_dir(self):
        # 获取所选文件
        self.dir_path = filedialog.askdirectory()
        self.dir_text.delete(1.0, END)
        self.dir_text.insert(1.0, self.dir_path)

    def pdf_image(self):

        pyMuPDF_fitz(self.pdf_path, self.dir_path)

    def pdf_word(self):
        file_name = os.path.basename(self.pdf_path).split(".")[0]
        word_path = self.dir_path + '/' + file_name + ".doc"
        PDFtoWord(self.pdf_path, word_path)




# PDFtoWord.py
from pdf2docx import Converter


# 读取PDF
def PDFtoWord(pdf_file, docx_file):
    # convert pdf to docx
    cv = Converter(pdf_file)
    cv.convert(docx_file, start=0, end=None)
    cv.close()

# pyMuPDF_fitz.py

import datetime
import os
import logging

import fitz  # fitz就是pip install PyMuPDF


def pyMuPDF_fitz(pdf_path, image_path):
    pdfDoc = fitz.open(pdf_path)
    file_name = os.path.basename(pdf_path).split(".")[0]
    for pg in range(pdfDoc.pageCount):
        page = pdfDoc[pg]
        rotate = int(0)
        # 每个尺寸的缩放系数为1.3,这将为我们生成分辨率提高2.6的图像。
        # 此处若是不做设置,默认图片大小为:792X612, dpi=96
        zoom_x = 1.33333333  # (1.33333333-->1056x816)   (2-->1584x1224)
        zoom_y = 1.33333333
        mat = fitz.Matrix(zoom_x, zoom_y).preRotate(rotate)
        pix = page.getPixmap(matrix=mat, alpha=False)
        if not os.path.exists(image_path):  # 判断存放图片的文件夹是否存在
            os.makedirs(image_path)  # 若图片文件夹不存在就创建
        pix.writePNG(image_path + '/' + file_name+'_%s.jpg' % pg)  # 将图片写入指定的文件夹内
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-12-02 16:42:32  更:2021-12-02 16:44:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 2:19:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码