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实现的文件同步服务器实例
Jun 02 Python
Python多进程原理与用法分析
Aug 21 Python
Python设计模式之装饰模式实例详解
Jan 21 Python
Python使用字典的嵌套功能详解
Feb 27 Python
python利用多种方式来统计词频(单词个数)
May 27 Python
python opencv minAreaRect 生成最小外接矩形的方法
Jul 01 Python
Python中的四种交换数值的方法解析
Nov 18 Python
Python验证码截取识别代码实例
May 16 Python
完美解决python针对hdfs上传和下载的问题
Jun 05 Python
keras.layer.input()用法说明
Jun 16 Python
Django2.1.7 查询数据返回json格式的实现
Dec 29 Python
Python 装饰器(decorator)常用的创建方式及解析
Apr 24 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 Ajax乱码
2008/04/09 PHP
将数组写入txt文件 var_export
2009/04/21 PHP
PHP采集相关教程之一 CURL函数库
2010/02/15 PHP
Window下PHP三种运行方式图文详解
2013/06/11 PHP
解决nginx不支持thinkphp中pathinfo的问题
2015/07/21 PHP
js post方式传递提交的实现代码
2010/05/31 Javascript
JavaScript中去掉数组中的重复值的实现方法
2011/08/03 Javascript
jquery append()方法与html()方法的区别及使用介绍
2014/08/01 Javascript
随鼠标移动的时钟非常漂亮遗憾的是只支持IE
2014/08/12 Javascript
AngularJS基础 ng-cut 指令介绍及简单示例
2016/08/01 Javascript
功能强大的jquery.validate表单验证插件
2016/11/07 Javascript
jQuery基于Ajax方式提交表单功能示例
2017/02/10 Javascript
js实现倒计时关键代码
2017/05/05 Javascript
angular ng-model 无法获取值的处理方法
2018/10/02 Javascript
VUE+Element环境搭建与安装的方法步骤
2019/01/24 Javascript
重学JS之显示强制类型转换详解
2019/06/30 Javascript
关于layui时间回显问题的解决方法
2019/09/24 Javascript
JS实现简单tab选项卡切换
2019/10/25 Javascript
vue fetch中的.then()的正确使用方法
2020/04/17 Javascript
解决vue 给window添加和移除resize事件遇到的坑
2020/07/21 Javascript
Python开发编码规范
2006/09/08 Python
Python写入数据到MP3文件中的方法
2015/07/10 Python
Python检测网站链接是否已存在
2016/04/07 Python
pycharm new project变成灰色的解决方法
2019/06/27 Python
详解Python3 中的字符串格式化语法
2020/01/15 Python
Python文件时间操作步骤代码详解
2020/04/13 Python
jupyter 导入csv文件方式
2020/04/21 Python
在keras里面实现计算f1-score的代码
2020/06/15 Python
基于CSS3特效之动画:animation的应用
2013/05/09 HTML / CSS
利用CSS3动画实现圆圈由小变大向外扩散的效果实例
2018/09/10 HTML / CSS
Topshop美国官网:英国快速时尚品牌
2019/05/16 全球购物
Can a struct inherit from another class? (结构体能继承类吗)
2014/07/22 面试题
同步小康驻村工作简报
2015/07/20 职场文书
2015年酒店销售部工作总结
2015/07/24 职场文书
2016年教师节特级教师获奖感言
2015/12/09 职场文书
使用 CSS 轻松实现一些高频出现的奇形怪状按钮
2021/12/06 HTML / CSS