温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么使用Python代码实现一款永久免费PDF编辑工具

发布时间:2022-07-13 14:04:22 来源:亿速云 阅读:191 作者:iii 栏目:开发技术

今天小编给大家分享一下怎么使用Python代码实现一款永久免费PDF编辑工具的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

    PyPDF2

    PyPDF2是一个第三方的python PDF库,它能够对PDF文件进行分割、合并、裁剪和转换页面。

    另外,它还可以对PDF文件添加自定义数据、水印、密码,也可以从PDF文件中检索出文本和元数据。

    安装

    使用pip直接安装:

    $ pip install PyPDF2

    下面就来演示几项PDF编辑功能,并且会逐行解释代码的含义。

    删除PDF页

    先给出实现代码,

    from PyPDF2 import PdfFileWriter, PdfFileReader
     
    output = PdfFileWriter()     // 1
    input1 = PdfFileReader(open("example.pdf", "rb")) // 2
     
    def delete_pdf(index):
     pages = input1.getNumPages() // 3
     
     for i in range(pages):
      if i+1 in index:
       continue
      output.addPage(input1.getPage(i))  // 4
     
     outputStream = open("PyPDF2-output.pdf", "wb")
     output.write(outputStream)  // 5
     
    delete_pdf([2,3,4])

    下面来解释一下代码中的几个关键点:

    • 声明一个用于输出PDF的实例;

    • 读取本地PDF文件;

    • 获取PDF文档的页数;

    • 读取PDF的第i页,添加到输出output实例中;

    • 把编辑后的文档保存到本地;

    合并PDF

    已经实现了删除PDF页,接下来就看一下如何把另外一个PDF中的页面合并到当前PDF中。

    方法1:

    可以沿着前面删除PDF页的方式进行拓展一下,对PDF进行合并。

    from PyPDF2 import PdfFileWriter, PdfFileReader
     
    output = PdfFileWriter()
    input1 = PdfFileReader(open("example.pdf", "rb"))
    input2 = PdfFileReader(open("simple2.pdf", "rb")) // 1
     
    def merge_pdf(add_index, origin_index):
     pages = input1.getNumPages()
     k = 0
     for i in range(pages):
      if i+1 in add_index:
       output.addPage(input2.getPage(origin_index[k])) // 2
       pages += 1
       k += 1
      output.addPage(input1.getPage(i))
     
     outputStream = open("PyPDF2-output.pdf", "wb")
     output.write(outputStream)
     
    merge_pdf([2,3,4], [0, 0, 0])
    • 读取需要合并的源文件;

    • 遍历到指定页,合并源PDF的页面;

    方法2:

    除了方法1,还有另外一种方法可以合并PDF:

    from PyPDF2 import PdfFileMerger // 1
     
    merger = PdfFileMerger()
     
    input1 = open("document1.pdf", "rb") // 2
    input2 = open("document2.pdf", "rb")
    input3 = open("document3.pdf", "rb")
     
    merger.append(fileobj = input1, pages = (0,3)) // 3
     
    merger.merge(position = 2, fileobj = input2, pages = (0,1)) // 4
     
    merger.append(input3) // 5
     
    output = open("document-output.pdf", "wb")
    merger.write(output)
    • 导入PyPDF2合并模块PdfFileMerger;

    • 读取需要处理和合并的PDF文档;

    • 从第一个PDF文档中取出需要合并的前3页;

    • 把第二个PDF文档的第一页插入到文档中;

    • 把第三个PDF文档附到输出文档末尾;

    除了上述介绍的2项主要功能,PyPDF2也有一些其他小功能:

    旋转

    input1.getPage(1).rotateClockwise(90)

    使得页面1旋转90度。

    添加水印

    page = input1.getPage(3)
    watermark = PdfFileReader(open("watermark.pdf", "rb"))
    page.mergePage(watermark.getPage(0))

    其中,水印存储在另外一个PDF文档watermark.pdf中。

    加密

    password = "secret"
    output.encrypt(password)

    首先给一个secret密码,然后使用encrypt对输出文档进行加密。

    pdfminer

    前面介绍的PyPDF2主要擅长于PDF页面级编辑,而对于文本和源数据级别编辑能力较弱。

    所以,这里就来介绍另外一款Python库来弥补它的不足。

    PDFMiner是一个PDF文档的文本提取工具,它具有如下特性:

    • 能够准确获取文本的位置和布局信息;

    • 可以将PDF转换为HTML/XML等格式;

    • 可以提取目录;

    • 可以提取标签内容;

    • 支持各种字体类型(Type1、TrueType、Type3和CID);

    • 支持中、日、韩语言和垂直书写文本;

    安装

    $ pip install pdfminer

    PDF转TxT

    pdfminer在GitHub的托管项目中,在目录tools下给出了一些实用的工具集,例如,PDF转HTML、PDF转HTML、PDF转TXT。我们可以直接通过使用下面命令提出PDF文档中的文本信息。

    $ pdf2txt.py samples/simple1.pdf

    以上就是“怎么使用Python代码实现一款永久免费PDF编辑工具”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。

    向AI问一下细节

    免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

    AI