前言
PyMuPDF 是 python 实现对 PDF 文件各类操作的第三方库,开源易用,功能强大 。开发文档见:https://pymupdf.readthedocs.io/en/latest/。
一、什么是拼版?
印刷或其他行业通常需要将多个小幅面PDF文件合并成一个大幅面PDF,用于大幅面印刷机印刷,俗称“拼版”。类似于将多个小PDF合并到A4页面进行打印。
二、使用步骤
1.安装库
pip install PyMuPDF
2.引入库
import fitz
3.PyMuPDF基本操作
rec = fitz.open(r"E:\Mypython\PyMuPdf\上海船舶名片.pdf") # 1、打开PDF
doc = fitz.open() # 2、新建一个空白PDF
page = doc.newPage() # 3、新建 A4 空白页面
rect = fitz.Rect(0.0, 0.0, 210, 150) # 4、建立一个矩形区域
page.showPDFpage(rect, src, 0, rotate=0) # 5、将src PDF的第一页放入新页面的rect区域中
doc.save("out.pdf") # 6、保存文件
src.close() # 7、关闭文件
doc.close()
4.关于rect
PyMuPDF使用的是直角坐标系第四象限,Rect表示由四个浮点数x0、y0、x1、y1定义的矩形。它们被视为“左上”和“右下”两个对角相对点的坐标。
5.完整代码
将一个2页的PDF拼成一个A4大版的完整代码。
import fitz
doc = fitz.open()
page = doc.newPage()
r1 = fitz.Rect(0, 0, page.rect.width, page.rect.height/2)
r2 = r1 + (0, page.rect.height/2, 0, page.rect.height/2)
src = fitz.open(r"E:\Mypython\PyMuPdf\上海船舶名片.pdf")
page.showPDFpage(r1, src, 0, rotate=0)
page.showPDFpage(r2, src, 1, rotate=0)
doc.save("out.pdf")
src.close()
doc.close()
# 注意 PyMuPDF的默认单位为pt,想要使用mm,需要除0.3527转化
总结
这里仅仅利用PyMuPDF将PDF合成了大版,下一步是要增加角线、色标、大版等信息 。PyMuPDF 拼版(二)