前提:需要有python环境
新建文件夹mergePDF存放以下文件:
1、命名为“docpath”的文件夹
2、conformityPDF.txt
3、conformity.txt
- 将以下代码复制到conformityPDF.txt中,并根据实际需求修改代码行中docpath和destpath 双引号中的内容,路径中的 “\” 需要替换成 “\”
# 二合一,横版的A4两个合成
import fitz
import os
docpath = "D:\\document\\invoice\\conformityPDF\\mergePDF\\docpath\\"
#修改此处,需要合并的发票的路径
destpath = "D:\\document\\invoice\\conformityPDF\\mergePDF\\"
#修改此处,生成的合并后的文件存放位置
files1 = os.listdir(docpath)
files = []
for filename in files1:
if (filename[-4::] == '.pdf'):
files.append(filename)
print(files)
doc = fitz.open()
# A4 纸张尺寸(毫米)
a4_width_mm = 210
a4_height_mm = 297
# 将毫米转换为点(1英寸 = 25.4毫米, 1英寸 = 72点, 因此 1毫米 ≈ 72 / 25.4 点)
a4_width = a4_width_mm * (72 / 25.4)
a4_height = a4_height_mm * (72 / 25.4)
# 对于横向 A4,交换宽度和高度
height = a4_height
width = a4_width
#width,height = fitz.PaperSize("A4") #横向
spaceHorizontal = 0.3 * 0.3937 * 72 #0.3厘米
spaceVertical = 0.3 * 0.3937 * 72
marginLeft = 1.448 * 0.3937 * 72
#marginRight = 0.296 * 0.3937 * 72
marginRight = 1.448 * 0.3937 * 72
marginTop = 0.296 * 0.3937 * 72
marginBottom = 0.296 * 0.3937 * 72
widthPannel = (width - marginLeft - marginRight)
heightPannel = (height - spaceVertical - marginTop - marginBottom) / 2
r1 = fitz.Rect(marginLeft,marginTop,marginLeft + widthPannel,marginTop + heightPannel)
r2 = fitz.Rect(marginLeft,marginTop + heightPannel + spaceVertical,
marginLeft + widthPannel,marginTop + 2 * heightPannel + spaceVertical)
textPoint = fitz.Point(width * 0.6,height * 0.97)
r_tab = [r1,r2]
panelCount = 0
for filename in files:
src = fitz.open(docpath + filename)
for i in range(0,src.page_count):
if panelCount % 2 == 0:
page = doc._newPage(-1,width=width,height=height)
page.show_pdf_page(r_tab[panelCount % 2],src,i)
panelCount = panelCount + 1
doc.save(destpath + "merge.pdf",garbage=3,deflate=True)
保存后退出,将conformityPDF.txt修改为conformityPDF.py
- 将以下代码复制到conformity.txt中
call python conformityPDF.py
cmd /k
保存后退出,将conformity.txt修改为conformity.bat
- 最后文件夹下有这三个文件

如果看不到文件后缀可参考

- 将需要合并的发票放到文件夹docpath中,然后双击运行“conformity.bat”即可生成发票合并后的文件merge.pdf。
2315

被折叠的 条评论
为什么被折叠?



