使用 python 进行图片和pdf之间的相互转换
使用到第三方库 pymupdf 在 python 环境下对 pdf 文件的操作。
pdf 转为图片
需新建文件夹 pdf2png
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
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 中。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
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()
|
好了今天为大家介绍的比较简单,希望大家能明天
原文链接:https://blog.csdn.net/XnCSD/article/details/80849996