【Python】pdf檔案逐頁轉圖片/修改圖片儲存大小指令碼
阿新 • • 發佈:2018-12-26
# !/usr/bin/python # -*- coding: utf-8 -*- """ author : 蛙鱖雞鸛狸猿 create_time : 2016年 11月 01日 星期二 17:38:06 CST program : *_* script of manipulating pdf *_* """ import sys import PyPDF2 import PythonMagick class ManImage: """ Manipulate Image Object """ def __init__(self, i_file, o_dire): """ init args :param i_file: (str) input pdf file (eg: "/home/file.pdf") :param o_dire: (str) output image directory (eg: "/home/") """ self.i_file = i_file self.o_dire = o_dire def __str__(self): traceback = "Executing under {0.argv[0]} of {1.i_file} into {2.o_dire}......".format(sys, self, self) return traceback def playpdf(self, ds): """ split pdf file :param ds: (int) set ds = 1024 ~= 1MB output under my test :return: splited PNG image file """ pages = PyPDF2.PdfFileReader(file(self.i_file, "rb")).getNumPages() print('Totally get ***{0:^4}*** pages from "{1.i_file}", playpdf start......'.format(pages, self)) try: for i in range(pages): image = PythonMagick.Image() image.density(str(ds)) image.read(self.i_file + '[' + str(i) + ']') image.magick("PNG") image.write(self.o_dire + str(i + 1) + ".png") print("{0:>5} page OK......".format(i + 1)) except Exception, e: print(str(e))
以上程式碼寫入一個“class_image.py”檔案,下面是調取的簡單示例。
# !/usr/bin/python # -*- coding: utf-8 -*- # te_author : 蛙鱖雞鸛狸猿 # create_time : 2016年 11月 01日 星期二 17:38:06 CST # NOTICE : *_* script of converting .pdf to .png*_* import sys import class_image i_file = sys.argv[1] o_dire = sys.argv[2] ds = sys.argv[3] if i_file[-4:] == ".pdf": class_image.ManImage(i_file=i_file, o_dire=o_dire).playpdf(ds=ds)