Python使用到第三方库PyMuPDF图片与pdf相互转换


Posted in Python onMay 03, 2019

使用 Python 进行图片和pdf之间的相互转换

使用到第三方库 PyMuPDF 在 python 环境下对 PDF 文件的操作。

PDF 转为图片

需新建文件夹 pdf2png

import fitz
import glob

def rightinput(desc):
  flag=True
  while(flag):
    instr = input(desc)
    try:
      intnum = eval(instr)
      if type(intnum)==int:
        flag = False
    except:
      print('请输入正整数!')
      pass
  return intnum

pdffile = glob.glob("*.pdf")[0]
doc = fitz.open(pdffile)

flag = rightinput("输入:1:全部页面;2:选择页面\t")
if flag == 1:
  strat = 0
  totaling = doc.pageCount
else:
  strat = rightinput('输入起始页面:') - 1
  totaling = rightinput('输入结束页面:')

for pg in range(strat, totaling):
  page = doc[pg]
  zoom = int(100)
  rotate = int(0)
  trans = fitz.Matrix(zoom / 100.0, zoom / 100.0).preRotate(rotate)
  pm = page.getPixmap(matrix=trans, alpha=False)
  pm.writePNG('pdf2png/%s.png' % str(pg+1))

图片合并为 PDF 文件

将所需合并的图片放置与文件夹 pic2pdf 中。

import glob
import fitz
import os

def pic2pdf():
  doc = fitz.open()
  for img in sorted(glob.glob("pic2pdf/*")): # 读取图片,确保按文件名排序
    print(img)
    imgdoc = fitz.open(img)         # 打开图片
    pdfbytes = imgdoc.convertToPDF()    # 使用图片创建单页的 PDF
    imgpdf = fitz.open("pdf", pdfbytes)
    doc.insertPDF(imgpdf)          # 将当前页插入文档
  if os.path.exists("allimages.pdf"):
    os.remove("allimages.pdf")
  doc.save("allimages.pdf")          # 保存pdf文件
  doc.close()

if __name__ == '__main__':
  pic2pdf()

好了今天为大家介绍的比较简单,希望大家能明天

Python 相关文章推荐
Python下的常用下载安装工具pip的安装方法
Nov 13 Python
Python结巴中文分词工具使用过程中遇到的问题及解决方法
Apr 15 Python
Python外星人入侵游戏编程完整版
Mar 30 Python
详解K-means算法在Python中的实现
Dec 05 Python
详解用python自制微信机器人,定时发送天气预报
Mar 25 Python
python的turtle库使用详解
May 10 Python
对Python _取log的几种方式小结
Jul 25 Python
pycharm新建Vue项目的方法步骤(图文)
Mar 04 Python
Python如何存储数据到json文件
Mar 09 Python
Django用户登录与注册系统的实现示例
Jun 03 Python
Python logging模块进行封装实现原理解析
Aug 07 Python
Scrapy 配置动态代理IP的实现
Sep 28 Python
利用python将图片版PDF转文字版PDF
May 03 #Python
Python3.0中普通方法、类方法和静态方法的比较
May 03 #Python
Python Flask框架模板操作实例分析
May 03 #Python
Python Flask框架扩展操作示例
May 03 #Python
Python安装Flask环境及简单应用示例
May 03 #Python
Python实现字典按key或者value进行排序操作示例【sorted】
May 03 #Python
Python3模拟curl发送post请求操作示例
May 03 #Python
You might like
如何对PHP程序中的常见漏洞进行攻击(下)
2006/10/09 PHP
php站内搜索并高亮显示关键字的实现代码
2011/12/29 PHP
phpstrom使用xdebug配置方法
2013/12/17 PHP
PHP中模拟处理HTTP PUT请求的例子
2014/07/22 PHP
php获取YouTube视频信息的方法
2015/02/11 PHP
php常用的工具开发整理
2019/09/26 PHP
jQuery的实现原理的模拟代码 -1 核心部分
2010/08/01 Javascript
与jquery serializeArray()一起使用的函数,主要来方便提交表单
2011/01/31 Javascript
Javascript中设置默认参数值示例
2014/09/11 Javascript
JavaScript常用小技巧小结
2014/12/29 Javascript
jQuery学习笔记之jQuery+CSS3的浏览器兼容性
2015/01/19 Javascript
Javascript连接Access数据库完整实例
2015/08/03 Javascript
JS+CSS实现的经典圆角下拉菜单效果代码
2015/10/21 Javascript
jquery插件uploadify多图上传功能实现代码
2016/08/12 Javascript
KnockoutJS 3.X API 第四章之数据控制流with绑定
2016/10/10 Javascript
微信小程序动态的加载数据实例代码
2017/04/14 Javascript
JS+HTML5 canvas绘制验证码示例
2018/12/05 Javascript
详解如何为你的angular app构建一个第三方库
2018/12/07 Javascript
详解vue中this.$emit()的返回值是什么
2019/04/07 Javascript
vue里的data要用return返回的原因浅析
2019/05/28 Javascript
JavaScript中判断为整数的多种方式及保留两位小数的方法
2019/09/09 Javascript
js实现鼠标拖曳效果
2020/12/30 Javascript
arcgis.js控制地图地体的显示范围超出区域自动弹回(实现思路)
2021/01/28 Javascript
深度剖析使用python抓取网页正文的源码
2014/06/11 Python
Python实现Linux下守护进程的编写方法
2014/08/22 Python
Python获取DLL和EXE文件版本号的方法
2015/03/10 Python
Python排序搜索基本算法之归并排序实例分析
2017/12/08 Python
python+ffmpeg视频并发直播压力测试
2018/03/06 Python
Python常用模块os.path之文件及路径操作方法
2019/12/03 Python
美国二手复古奢侈品包包购物网站:LXRandCo
2019/06/18 全球购物
台湾全方位线上课程与职能学习平台:TibaMe
2019/12/04 全球购物
Chupi官网:在爱尔兰手工制作的订婚、结婚戒指和精美珠宝
2020/09/28 全球购物
期末考试动员演讲稿
2014/01/10 职场文书
2014年秋季开学寄语
2014/08/02 职场文书
大学竞选班干部演讲稿
2014/08/21 职场文书
学历证明范文
2015/06/16 职场文书