陈程的技术博客

  • 关于作者
全栈软件工程师
一个专注于技术研究创新的程序员
  1. 首页
  2. python
  3. 正文

剪切pdf分割程图片和pdf

2021年6月8日 1072点热度 0人点赞 0条评论
import os
import fitz
import glob
import requests


os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'

#剪切pdf为图片
def CutPdf(pdfPath,savePath,pdfSavePath):
    try:
        doc = fitz.open(pdfPath) #pdf路径
        for pg in range(doc.pageCount):
            page = doc[pg]
            rotate = int(0)
            # 每个尺寸的缩放系数为2,这将为我们生成分辨率提高四倍的图像。
            zoom_x = 2.0
            zoom_y = 2.0
            trans = fitz.Matrix(zoom_x, zoom_y).preRotate(rotate)
            pm = page.getPixmap(matrix=trans, alpha=False)
            imagePath = savePath + '%s.png' % str(pg + 1)
            pm.writePNG(imagePath) #最终存储路径
            newpdfPath = pdfSavePath + '%s.pdf' % str(pg + 1)
            print("剪切一张图片:" + str(pg + 1))
            frompic2pdf(imagePath,pdfSavePath,newpdfPath)
            print("转换成功一张pdf:" + str(pg + 1))
    except Exception as e:
        print('CutPdf出现异常:' + str(e))

#图片转pdf
def frompic2pdf(img_path,pdfSavePath, pdf_path):
    # 使用glob读图
    for img in sorted(glob.glob(img_path)):
        if not os.path.exists(pdfSavePath):
             os.makedirs(pdfSavePath)
        
        # 打开空文档
        doc = fitz.open()
        # 打开指定图片
        imgdoc = fitz.open(img)
        # 使用图片创建单页的PDF
        pdfbytes = imgdoc.convertToPDF()
        imgpdf = fitz.open("pdf", pdfbytes)
        # 将当前页写入文档
        doc.insertPDF(imgpdf)
        # 保存为指定名称的PDF文件
        doc.save(pdf_path)
        # 关闭
        doc.close()


def main():
    pdfUrl = "cards"
    fileList = os.listdir(pdfUrl)
    index = 1
    for item in  fileList:
        print("开始裁剪" + item)
        url = pdfUrl + "/" + item

        foldStr = "images/" + item.split('.')[0]
        url2 = foldStr + "/" + item.split('.')[0]
        foldStr3 = "pdf/" + item.split('.')[0]
        url3 = foldStr3 + "/"
        if not os.path.exists(foldStr):
            os.makedirs(foldStr)

        CutPdf(url,url2,url3)
        print("完成裁剪")
        index+=1

if __name__ == "__main__":
    main()

 

标签: pdf python
最后更新:2021年6月8日

博主

全栈工程师,侧重项目技术解决方案规划和开发

打赏 点赞
< 上一篇
下一篇 >

文章评论

取消回复

分类
  • .NET (65)
  • docker (3)
  • linux (12)
  • python (20)
  • web (14)
  • 小程序 (4)
  • 数据库 (2)
  • 未分类 (4)
  • 杂七杂八 (10)
标签聚合
js C# centos nginx linux python DevExpress winform
最新 热点 随机
最新 热点 随机
.NET开发手册标准参考 招募兼职前端开发 Centos安装dotnet6环境 VS上切换分支,vs编译运行出现bug,A fatal error was encountered彻底解决方案 用C#封装一个线程安全的缓存器,达到目标定时定量更新入库 C#通过特性的方式去校验指定数据是否为空
用C#写基于用户的协同过滤算法,推荐网站上你可能感兴趣的人 C# 一个发送邮件的帮助类 招募兼职前端开发 在winform窗体上创建一个可以在主窗体上拖动拉伸的panel控件 怎样用JS写一个下拉加载数据的table DreamSkin自定义美化控件-RoundButton圆角矩形按钮控件

COPYRIGHT © 2021 陈程的技术博客. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS