zoukankan      html  css  js  c++  java
  • 使用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("
    转换为图片",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进行转换。

    不定期会发布一些实用的Java开发文章
  • 相关阅读:
    poj 3261 Milk Patterns 后缀数组+二分
    poj 2774 Long Long Message(后缀数组入门题)
    hdu 5719 Arrange
    hdu 5720 Wool
    DROP TABLE 恢复
    MySQL数据库改名的三种方法
    MySQL 误操作后数据恢复(update,delete忘加where条件)
    MySQL常用SQL语句优化
    EXPLAIN 命令详解
    mysql sql语句大全
  • 原文地址:https://www.cnblogs.com/lr393993507/p/15123044.html
Copyright © 2011-2022 走看看