使用Python直接把PDF轉成圖片


Python中把PDF轉成單個或多個圖片

現在有很多在線的pdf轉圖片工具,但是有些數據是不想聯網,更不想把數據上傳到別人的服務器進行轉換,那么怎么辦呢?正常的Java編寫一個耗費時間;現在不是有Python嗎,人家有庫,用起來快有方便,那我們就直接拿來用就好了,多舒服;

協議:CC BY-SA 4.0 https://creativecommons.org/licenses/by-sa/4.0/

版權聲明:本文為原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。

一、安裝Python環境

這一步不想說了,這個比較簡單。記得配置一下環境變量。不然運行腳本比較費勁!


二、Python的PDF轉PNG代碼

注意:第一步要安裝庫:pip install pymupdf

#安裝庫 pip install pymupdf
import os
import fitz
pdf_dir=[]

def get_file():
	docunames = os.listdir()
	for docuname in docunames:
		if os.path.splitext(docuname)[1]=='.pdf': #目錄下包含.pdf的文件
			pdf_dir.append(docuname)
def conver_img():
	for pdf in pdf_dir:
		doc = fitz.open(pdf)
		#pdf_name = os.path.splitext(pdf)[0]
		pdf_name = os.path.splitext(pdf)[0]
		print("====================================")
		print("開始轉換%s.PDF文檔"%pdf_name)
		print("====================================")
		print("共",doc.pageCount,"頁")
		for pg in range(0,doc.pageCount):
			print("\r轉換為圖片",pg+1,"/",doc.pageCount,end=";")
			page=doc[pg]
			rotate = int(0) #旋轉角度
			# 每個尺寸的縮放系數為2,這將為我們生成分辨率提高四倍的圖像
			zoom_x=2.0
			zoom_y=2.0
			print("")
			trans = fitz.Matrix(zoom_x, zoom_y).preRotate(rotate)
			pm= page.getPixmap(matrix=trans, alpha=False)
			pm.writePNG(r'./tu'+str(pdf_name)+'-'+'{:02}.png'.format(pg))
if __name__=='__main__':
	get_file()
	conver_img()

腳本和PDF要在同一個文件夾下。該腳本會對文件夾下的所有PDF進行轉換。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM