//阿里云下载文件流
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')
python pdf2image PyMuPDF 去掉原有ca签章信息 在添加水印
于 2024-10-17 17:14:26 首次发布