900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 从多个pdf文档中截取部分区域拼接成一个pdf文档

从多个pdf文档中截取部分区域拼接成一个pdf文档

时间:2018-11-28 23:07:50

相关推荐

从多个pdf文档中截取部分区域拼接成一个pdf文档

提取合并多个pdf页面中的子区域,形成一个没有分页符的页面。

输入input:多个pdf的Rect区域 areas in pdf

输出output:一页(只是一页)完整的pdf文档 a page of pdf doc

*******************************

使用的工具及步骤tools and steps:

1、使用fitz.open()函数打开pdf

*2、使用page.searchFor("特征字符串")函数找到特征字符串位置(两个对角定点的坐标),得到需要剪切的位置。如果知道位置这一步可以省略

3、使用page = DOC.newPage(页面宽,页面高)创建新的页面

4、使用page.showPDFpage()函数插入区域

5、使用doc.save()函数保存文档

example:

#step 1

import fitz

DOC1 = fitz.open("c:/内容文件1.pdf") # 打开pdf文件,为提取这个文件的内容做准备

DOC2 = fitz.open("c:/内容文件2.pdf") # 打开pdf文件,为提取这个文件的内容做准备

DOC3 = fitz.open() # empty new PDF (output)建立一个空文档,用于存放提取出来的pdf上的区域

#step 3 创建一个新的空页面

page = DOC3.newPage(width=DOC1[0].rect.width,

height=y) #文档总共的高度

4、使用page.showPDFpage()函数插入区域

page.showPDFpage(DOC1[0].rect, DOC1, 0) # 把DOC1文档的 page 0页 的DOC1[0].rect 区域插入DOC3新创建的页面

page.showPDFpage(DOC3rect, DOC2, 1, clip=rect1) # 把DOC2 第一页中的rect1 区域 插入DOC3rect区域 page 1, rect1

page.showPDFpage(nr2, DOC2, 2, clip=rect2) #同上

5、使用doc.save()函数保存文档

DOC3.save('E:/我的新文档.pdf', garbage=4, deflate=True) #保存文档到'E:/我的新文档.pdf'代码样例

import fitzDOC1 = fitz.open('E:/定义3.pdf')DOC2 = fitz.open('E:/含义.pdf')DOC3 = fitz.open() page = DOC3.newPage(width=DOC1[0].rect.width, height=DOC1[0].rect.height + DOC2[0].rect.height)page.showPDFpage(DOC1[0].rect, DOC1, 0) placerect = fitz.Rect([0,DOC1[0].rect[3],DOC1[0].rect[2],DOC1[0].rect[3]+DOC2[0].rect[3]])page.showPDFpage(placerect, DOC2, 0, clip=DOC2[0].rect) DOC3.save('E:/我的新文档.pdf', garbage=4, deflate=True)

感谢Jorj McKie

西风.3.1

最后,虽然GitHub上也发了同样的文章,但我还是希望新接触pymupdf的同学可以更方便的使用这个库。欢迎邮件咨询pymupdf的相关问题。democrat800@

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。