Python 自動化--pdf轉(zhuǎn)圖片可視化

應(yīng)用場景 需要將pdf文件轉(zhuǎn)換為圖片薛窥,

打包
 pyinstaller -F 拆分pdf文件.py     #會顯示控制臺 cmd
  pyinstaller -F -w 拆分pdf文件.py     #不會顯示控制臺
import fitz
import os
import tkinter as tk
from tkinter import filedialog as fd
import time
import tkinter.messagebox

file_types = [('PDF文件', '.pdf')]


def convert_pdf2img(file_relative_path, pdfinputout):
    """
    file_relative_path : 文件相對路徑
    """
    print(pdfinputout, 101010101)
    page_num = 1
    # 獲取最后一個斜杠的索引
    lastIndex = pdf_in.get().rfind("/")
    print(lastIndex, 8888888)
    print(file_relative_path[:lastIndex])
    # if not os.path.exists(filename):
    #     os.makedirs(filename)
    pdf = fitz.open(file_relative_path)
    print(pdf)
    print(pdf)
    for page in pdf:
        rotate = int(0)
        # 每個尺寸的縮放系數(shù)為2浑侥,這將為我們生成分辨率提高4的圖像精偿。
        # 此處若是不做設(shè)置丹弱,默認(rèn)圖片大小為:792X612, dpi=96
        zoom_x = 2  # (2-->1584x1224)
        zoom_y = 2
        mat = fitz.Matrix(zoom_x, zoom_y)
        pixmap = page.get_pixmap(matrix=mat, alpha=False)
        pixmap.pil_save(
            fr"{pdfinputout if pdfinputout else file_relative_path[:lastIndex]}\{file_relative_path[lastIndex:len(file_relative_path) - 4]}{page_num}.png")

        print(f"第{page_num}保存圖片完成")
        page_num = page_num + 1
    tkinter.messagebox.showinfo('轉(zhuǎn)換成功', "\n共轉(zhuǎn)換" + f'{len(pdf)}張圖片')


# if __name__ =="__main__":
#     # 文件夾中文件名
#     file_relative_path = r"C:\Users\osc.luxin.wang\Desktop\新建文件夾\XaP CPK.PDF"
#     convert_pdf2img(file_relative_path)

# 選擇文件
def select_out():
    # path_save = fd.asksaveasfilename(defaultextension='*.pdf', filetypes=file_types)
    # path_save = fd.askdirectory()
    path_save = fd.askopenfilename(filetypes=[('pdf', '.pdf')])
    print(path_save)
    if path_save != '':
        button_split['state'] = 'normal'
        button_input_out['state'] = 'normal'
        pdf_in.set(path_save)


# 選擇保存文件
def select_save():
    # path_save = fd.asksaveasfilename(defaultextension='*.pdf', filetypes=file_types)
    path_save = fd.askdirectory()
    print(path_save)
    # a = fd.askdirectory()
    if path_save != '':
        button_split['state'] = 'normal'
        pdf_input_out.set(path_save)


def pdf_split():
    # printout = pdf_out.get() + '.pdf'
    printin = pdf_in.get().replace('/', "\\") + ""
    pdfinputout = pdf_input_out.get().replace('/', "\\") + ""
    convert_pdf2img(printin, pdfinputout)


global pdf_in, button_input, button_split, pdf_input_out, button_input_out


def main(root3):
    global pdf_in, button_input, button_split, pdf_input_out, button_input_out
    pdf_in = tk.StringVar()
    # pdf_out = tk.StringVar()
    pdf_input_out = tk.StringVar()

    label_input = tk.Label(root3, text='①選擇要轉(zhuǎn)換的pdf文件:')
    entry_input = tk.Entry(root3, textvariable=pdf_in, width=45)
    button_input = tk.Button(root3, text='①選擇文件', command=select_out)
    # button_input['state'] = 'disabled'

    # page_out = tk.Label(root3, text='②合并pdf文件名:')
    # page_out_ = tk.Label(root3, text='(命名格式為‘XXX’)')
    # entry_out2 = tk.Entry(root3, textvariable=pdf_out, width=45)

    label_input_out = tk.Label(root3, text='②選擇要保存圖片文件夾:')
    page_out_out = tk.Label(root3, text='(若不選擇保存文件夾庐船,默認(rèn)保存到pdf所在文件夾’)')
    entry_input_out = tk.Entry(root3, textvariable=pdf_input_out, width=45)
    button_input_out = tk.Button(root3, text='②選擇文件夾', command=select_save)
    button_input_out['state'] = 'disabled'

    button_split = tk.Button(root3, text='③執(zhí)行轉(zhuǎn)換', command=pdf_split, width=20, height=3)
    button_split['state'] = 'disabled'

    label_input.place(x=10, y=30)
    entry_input.place(x=10, y=60)
    button_input.place(x=350, y=62)

    # page_out.place(x=10, y=80)
    # page_out_.place(x=10, y=105)
    # entry_out2.place(x=10, y=125)

    label_input_out.place(x=10, y=155)
    page_out_out.place(x=10, y=175)
    entry_input_out.place(x=10, y=205)
    button_input_out.place(x=350, y=205)

    button_split.place(x=220, y=280)


root2 = tk.Tk()
# 窗口尺寸
# root.geometry('400x300')
# 窗口居中
sw = root2.winfo_screenwidth()
sh = root2.winfo_screenheight()
c = (sw - 400) / 2
d = (sh - 300) / 2
# print(a,b,c,d)
root2.geometry('605x500+%d+%d' % (c, d))
# 軟件標(biāo)題
root2.title('PDF文件轉(zhuǎn)換圖片')
# 軟件左上角圖標(biāo)
# root2.iconbitmap('tubiao.ico')
# 窗口大小不可調(diào)
root2.resizable(width=False, height=False)

root = tk.Frame(root2, width=605, height=500)
root.place(x=0, y=0)
main(root)

root2.mainloop()

time.sleep(10)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末昆庇,一起剝皮案震驚了整個濱河市歇万,隨后出現(xiàn)的幾起案子揩晴,更是在濱河造成了極大的恐慌,老刑警劉巖贪磺,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件硫兰,死亡現(xiàn)場離奇詭異,居然都是意外死亡寒锚,警方通過查閱死者的電腦和手機瞄崇,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來壕曼,“玉大人苏研,你說我怎么就攤上這事∪迹” “怎么了摹蘑?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長轧飞。 經(jīng)常有香客問我衅鹿,道長撒踪,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任大渤,我火速辦了婚禮制妄,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘泵三。我一直安慰自己耕捞,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般殃饿。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上割岛,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死弛饭,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的萍歉。 我是一名探鬼主播孩哑,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼翠桦!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起胳蛮,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤销凑,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后仅炊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體斗幼,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年抚垄,在試婚紗的時候發(fā)現(xiàn)自己被綠了蜕窿。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡呆馁,死狀恐怖桐经,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情浙滤,我是刑警寧澤阴挣,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站纺腊,受9級特大地震影響畔咧,放射性物質(zhì)發(fā)生泄漏茎芭。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一誓沸、第九天 我趴在偏房一處隱蔽的房頂上張望梅桩。 院中可真熱鬧,春花似錦拜隧、人聲如沸宿百。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽犀呼。三九已至,卻和暖如春薇组,著一層夾襖步出監(jiān)牢的瞬間外臂,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工律胀, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留宋光,地道東北人。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓炭菌,卻偏偏與公主長得像罪佳,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子黑低,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內(nèi)容