PDF轉圖片工具
阿新 • • 發佈:2019-02-01
urn com mce rac put ESS output 直接 run
點擊下載( 提取碼:1ll1 )
軟件功能基於mupdf,UI使用wxpython開發
功能:
支持pdf轉圖片,圖片格式png
支持批量轉換
使用:
第一步,點擊按鈕添加文檔到列表,或直接將待轉換文檔拖入列表
第二步,選擇輸出目錄
第三部,點擊轉換
核心代碼:
class Debug(object): DEBUG = True def TraceLog(self, log=None): if Debug: import traceback traceback.print_exc() if log: print(log) class PDF2IMGProcess(Debug): def __init__(self, path, callback=None): try: self.pdf_doc = fitz.open(path) self.file_name = os.path.basename(path) self.pages = self.pdf_doc.pageCount self.callback = callback self._Running = True except: self.TraceLog() def _TransFile(self, output_path): if self.callback: self.callback({‘file‘: self.file_name, ‘status‘: ‘開始!‘}) if self.pages > 0: output_path = os.path.join(output_path, self.file_name) os.makedirs(output_path, exist_ok=True) for p in range(self.pages): if not self._Running: break if self._TransPage(output_path, p): if self.callback: self.callback({‘file‘: self.file_name, ‘page‘: p, ‘status‘: ‘Done!‘}) else: if self.callback: self.callback({‘file‘: self.file_name, ‘page‘: p, ‘status‘: ‘Error!‘}) break if self.callback: self.callback({‘file‘: self.file_name, ‘status‘: ‘完成!‘}) def _TransPage(self, output_path, page_no, scale=1.8): output_name = os.path.join(output_path, ‘{}_{}.png‘.format(self.file_name, page_no)) page = self.pdf_doc.loadPage(page_no) matrix = fitz.Matrix(scale, scale) try: pix = page.getPixmap(matrix=matrix) pix.writePNG(output_name) return True except: self.TraceLog() return False def Start(self, output_path): self._Running = True Thread(target=self._TransFile, args=(output_path,)).start() def Cancel(self): self._Running = False
PDF轉圖片工具