java doc转pdf_利用python进行PDF文件和图片格式互转

首先要安装python第三方库 PyMuPDF,该库可在 python 环境下对 PDF 文件的操作。

废话不多说,直接贴代码

1 pdf转影像的代码:

9c91d4cdf8bf55fd74538ba81d310633.png

2 影像合成pdf代码:

afc49f98b0c64f55efc80626ddf41e9a.png

3 选择pdf转图片还是图片合成pdf代码:

5b06e817212c966dd3d768bd7a15ec14.png

4 主函数:

5e53beb7385e8f960c23673f85d042e8.png

使用说明:python文件和需要转换的pdf文件或者要生成pdf文件的图片文件夹放在同一目录下

667b2ab48b8754ed66c170f88d99ed58.png

完整代码:

import os

import fitz

import glob

def choice(desc):

    flag=True

    while(flag):

        instr = input(desc)

        try:

            intnum = eval(instr)

            if type(intnum)==int:

                flag = False

        except:

            print('请输入正整数!')

            pass

    return intnum

def pdf2img():

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

    doc = fitz.open(pdffile)

    strat = 0

    totaling = doc.pageCount

    for pg in range(strat, totaling):

        page = doc[pg]

        zoom = int(100)

        rotate = int(0)

        trans = fitz.Matrix(zoom / 60.0, zoom / 60.0).preRotate(rotate)

        pm = page.getPixmap(matrix=trans, alpha=False)

        pm.writePNG('img/%s.png' % str(pg+1))

def img2pdf():

    li = []

    doc = fitz.open()

    for filename in glob.glob("img/*"):

        (filepath,tempfilename) = os.path.split(filename)

        (fname,extension) = os.path.splitext(tempfilename)

        li.append(int(fname))

        li_new = sorted(li,reverse=0)

    for img in li_new:

        imgdoc = fitz.open(filepath + '/' + str(img) + extension)   # 打开图片

        pdfbytes = imgdoc.convertToPDF()        # 使用图片创建单页的 PDFr

        imgpdf = fitz.open("pdf", pdfbytes)

        doc.insertPDF(imgpdf)                   # 将当前页插入文档

    if os.path.exists("测试.pdf"):

        os.remove("测试.pdf")

    doc.save("测试.pdf")                   # 保存pdf文件

    doc.close()

if __name__ == '__main__':

    flag = choice("输入:1:pdf转影像;2:影像生成pdf\t")

    if flag == 1:

        pdf2img()

    else:

        img2pdf()

  最后附上测试视频:

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页