python pdf 转 图片、pdf 转 word、 word 转 pdf

python pdf 转 图片、pdf 转 word、 word 转 pdf


前言

pdf word 互转


一、环境

  1. python 3.85

  2. PyMuPDF 1.19.6

  3. pdf2docx 0.5.3

  4. doc2pdf 0.1.8

二、api文档

  1. PyMuPDF (pdf转图片) https://pymupdf.readthedocs.io/en/latest/index.html
  2. pdf2docx (pdf转word) https://dothinking.github.io/pdf2docx/installation.html
  3. doc2pdf (word 转 pdf) https://pypi.org/project/docx2pdf/

三、使用

1.pdf转图片

pip install pymupdf

import fitz
#打开pdf
pdf = fitz.open(<pdf_path_dir>)
#遍历pdf
for page in pdf.pages(0, pdf.page_count, 1):
	#创建像素图
    pix = page.get_pixmap(matrix=fitz.Matrix(a, b))
    #保存
    pix.save(f"{out}page-%i.png" % page.number)

2.pdf转word

pip install pdf2docx

from pdf2docx import Converter
cv = Converter(<pdf_path_dir>)
cv.convert(out)      # all pages by default
cv.close()

3.doc2pdf

pip install docx2pdf

from docx2pdf import convert
convert(<doc_path_dir>, <pdf_path_dir>)

四、完整代码

# -*- coding: utf-8 -*-
# !/usr/bin/env python
# @Time    : 2022/6/16 9:56 
# @Author  : mtl
# @Desc    : ***
# @File    : test.py
# @Software: PyCharm
from pathlib import Path

def pdf_to_img(file: str, out: str = "./", a: int = 2, b: int = 2):
    """
    :param file: 文件名
    :param a: 缩放系数 越大分辨率 越高
    :param b: 缩放系数 越大分辨率 越高
    :return: None
    """
    import fitz
    pdf = Path(file)
    assert pdf.is_file() and pdf.suffix == '.pdf', "不是pdf!"
    pdf = fitz.open(pdf)
    for page in pdf.pages(0, pdf.page_count, 1):
        pix = page.get_pixmap(matrix=fitz.Matrix(a, b))
        pix.save(f"{out}page-%i.png" % page.number)

def pdf_to_word(file: str, out: str = "out.docx"):
    from pdf2docx import Converter
    pdf = Path(file)
    print(pdf.suffix != ".pdf")
    assert pdf.is_file() and pdf.suffix == '.pdf', "不是pdf!"
    cv = Converter(pdf)
    cv.convert(out)      # all pages by default
    cv.close()

def word_to_pdf(file: str, out: str = "out.pdf"):
    from docx2pdf import convert
    pdf = Path(file)
    assert pdf.is_file() and pdf.suffix in ['.dox', '.docx'], "不是word!"
    convert(pdf, out)


if __name__ == '__main__':
    name = r"C:\Users\e9\Documents\1_环境信息管控平台项目可研---.pdf"
    pdf_to_img(name)
    pdf_to_word(name)
    word_to_pdf("out.docx")
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matianlongg

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值