微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在此 PDF 水印去除脚本中添加批处理操作?

如何解决如何在此 PDF 水印去除脚本中添加批处理操作?

这个脚本不是我详细说明的,它允许我从 PDF 文件删除水印。问题是它没有做批量操作的选项,我在同一个目录下有1000多个PDF文件

from PyPDF2 import PdfFileReader,PdfFileWriter

def removeWatermark(input_fname: str,output_fname: str):

    with open(input_fname,"rb") as inputFile,open(output_fname,"wb") as outputFile:

        reader = PdfFileReader(inputFile)
        writer = PdfFileWriter()

        for n in range(reader.numPages):

            page = reader.getPage(n)
            del page["/Contents"][-1]

            writer.addPage(page)

        writer.write(outputFile)

if __name__ == "__main__":

    import sys

    if len(sys.argv) != 3:
        raise RuntimeError("Arguments not correct!")

    removeWatermark(sys.argv[1],sys.argv[2])

如果有人能帮助我,我很感激。

依赖:PyPDF2 和 PDFtk

解决了这个问题:

import os
from PyPDF2 import PdfFileReader,PdfFileWriter

path = os.path.dirname(__file__)
files = os.listdir(path)

def removeWater(inputfilename,outputfilename):

        "input"
        inputFile = open(inputfilename,"rb")
        outputFile = open(outputfilename,"wb")
        
        pdfReader = PdfFileReader(inputFile)
        pdfWriter = PdfFileWriter()
        
        for n in range(pdfReader.numPages):

            page = pdfReader.getPage(n)
            del page["/Contents"][-1]

            pdfWriter.addPage(page)

        pdfWriter.write(outputFile)

if __name__ == '__main__':   
    for filename in files:
            if filename.endswith(('.pdf')):
                removeWater(os.path.splitext(filename)[0] + ".pdf",os.path.splitext(filename)[0] + "- limpo" + ".pdf")

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。