溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何在Python中使用PyMuPDF庫將圖片與pdf進(jìn)行轉(zhuǎn)換

發(fā)布時(shí)間:2021-03-01 15:44:46 來源:億速云 閱讀:700 作者:戴恩恩 欄目:開發(fā)技術(shù)

這篇文章主要介紹了如何在Python中使用PyMuPDF庫將圖片與pdf進(jìn)行轉(zhuǎn)換,億速云小編覺得不錯(cuò),現(xiàn)在分享給大家,也給大家做個(gè)參考,一起跟隨億速云小編來看看吧!

python可以做什么

Python是一種編程語言,內(nèi)置了許多有效的工具,Python幾乎無所不能,該語言通俗易懂、容易入門、功能強(qiáng)大,在許多領(lǐng)域中都有廣泛的應(yīng)用,例如最熱門的大數(shù)據(jù)分析,人工智能,Web開發(fā)等。

使用 Python 進(jìn)行圖片和pdf之間的相互轉(zhuǎn)換

使用到第三方庫 PyMuPDF 在 python 環(huán)境下對(duì) PDF 文件的操作。

PDF 轉(zhuǎn)為圖片

需新建文件夾 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('請(qǐng)輸入正整數(shù)!')
      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('輸入結(jié)束頁面:')

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()    # 使用圖片創(chuàng)建單頁的 PDF
    imgpdf = fitz.open("pdf", pdfbytes)
    doc.insertPDF(imgpdf)          # 將當(dāng)前頁插入文檔
  if os.path.exists("allimages.pdf"):
    os.remove("allimages.pdf")
  doc.save("allimages.pdf")          # 保存pdf文件
  doc.close()

if __name__ == '__main__':
  pic2pdf()

以上就是億速云小編為大家收集整理的如何在Python中使用PyMuPDF庫將圖片與pdf進(jìn)行轉(zhuǎn)換,如何覺得億速云網(wǎng)站的內(nèi)容還不錯(cuò),歡迎將億速云網(wǎng)站推薦給身邊好友。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI