python pdf2image PyMuPDF 去掉原有ca签章信息 在添加水印

	//阿里云下载文件流
def pdfStream(pdf):
    config = configparser.ConfigParser()
    config.read('config.ini')
    auth = oss2.AuthV4(config.get('aliOss', 'access_id'), config.get('aliOss','access_secret'))
    aliOss = oss2.Bucket(auth, "阿里云地址", "bucket"  , region="")
    object_stream = aliOss.get_object(pdf) 
    return object_stream.read()
    


def add_watermark(urlPdf, watermarkUrl):
            start = datetime.now()

            current_date = datetime.now().strftime("%Y%m%d")
            folder_name = f"{current_date}"
            script_dir = os.path.dirname(os.path.realpath(__file__))
            folder_file = f"{script_dir}/{folder_name}"
            if not os.path.exists(folder_file):
                os.mkdir(folder_file)
            output_path = f"{folder_file}/{str(uuid.uuid4().hex)}.pdf"  
            output_pathPdf = f"{folder_file}/{str(uuid.uuid4().hex)}.pdf"  
            output_pathPdf1 = f"{folder_file}/{str(uuid.uuid4().hex)}.pdf"  
            output_pdf_path = f"{folder_file}/{str(uuid.uuid4().hex)}.pdf"  
           
            stream = pdfStream(urlPdf)
            if stream:
                 pdf = fitz.open()
                a4 = fitz.paper_rect("a4")
                images = convert_from_bytes(stream, fmt="jpeg")
                for i, image in enumerate(images): 
                    output_buffer = io.BytesIO()
                    image.save(output_buffer, format='JPEG')
                   
                    imgdoc = fitz.open("pdf",output_buffer)         # 打开图片
                    pdfbytes = imgdoc.convert_to_pdf()    # 使用图片创建单页的 PDF
                    imgpdf = fitz.open("pdf", pdfbytes)
                    page = pdf.new_page(width=a4.width, height=a4.height)
                    page.show_pdf_page(page.rect, imgpdf, 0) # image fills the page图像填充页面
                    width, height = page.mediabox.width, page.mediabox.height
                    rect = fitz.Rect(width-50, 0, width, 50)
                    page.insert_image(rect, filename=watermarkUrl,overlay=True)
                    #pdf.insert_pdf(imgpdf)          # 将当前页插入文档
                    imgdoc.close() 
                    imgpdf.close()  # 关闭图片文档
                    image.close()
                    
                images = None    
                pdf.save(output_pdf_path)
                pdf.close()    
                config = configparser.ConfigParser()
                config.read('config.ini')
                auth = oss2.AuthV4(config.get('aliOss', 'access_id'), config.get('aliOss', 'access_secret'))
                aliOss = oss2.Bucket(auth, "https://oss-cn-shanghai.aliyuncs.com", "cdyywd", region="cn-shanghai") #-internal
                #aliOss = oss2.Bucket(auth, "https://oss-cn-shanghai-internal.aliyuncs.com", "cdyywd", region="cn-shanghai")
                pdfName = f"uploads/temp/{str(uuid.uuid4().hex)}.pdf"  
                aliOss.put_object_from_file(pdfName, output_pdf_path)
                os.remove(output_pdf_path)
                """
                return { 'code': 200, 'message': "请求成功", 'data': pdfName }, 200, {'Content-Type': 'application/json; charset=utf-8'}  
                
                exit()
               
                images = None
 
                # 创建新的PDF文档,只包含指定页码之前的内容
                DocumentPdf = fitz.open(output_pdf_path)
               
                for page in DocumentPdf:
                    width, height = page.mediabox.width, page.mediabox.height
                    rect = fitz.Rect(width-50, 0, width, 50)
                    page.insert_image(rect, filename=watermarkUrl,overlay=True)
                       
                DocumentPdf.save(output_path)
                DocumentPdf.close()
                print(output_pdf_path)
                #os.remove(output_pdf_path)
                config = configparser.ConfigParser()
                config.read('config.ini')
                auth = oss2.AuthV4(config.get('aliOss', 'access_id'), config.get('aliOss', 'access_secret'))
                aliOss = oss2.Bucket(auth, "https://oss-cn-shanghai.aliyuncs.com", "cdyywd", region="cn-shanghai") #-internal
                #aliOss = oss2.Bucket(auth, "https://oss-cn-shanghai-internal.aliyuncs.com", "cdyywd", region="cn-shanghai")
                pdfName = f"uploads/temp/{str(uuid.uuid4().hex)}.pdf"  
                aliOss.put_object_from_file(pdfName, output_path)
                #os.remove(output_path)
                
                return { 'code': 200, 'message': "请求成功", 'data': pdfName }, 200, {'Content-Type': 'application/json; charset=utf-8'}
                """   


add_watermark('地址链接','水印地址.png')



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值