文件发放管理-给PDF文件添加电子受控章
企业的文控中心发放文件的时候一般需要盖受控章,表示文件版本和发放数量受到了控制.
传统操作方式:人工盖章+手工记录
本文先解决人工盖章问题
需要使用的python模块PyPDF2, reportlab
需要建文件夹:
pic_source 保存原文件,存放以.pdf 结尾的文件
pic_chop 保存盖章文件
# -*- coding:utf-8 -*-
import PyPDF2
import os
from reportlab.lib.units import inch #Convert a string or number to a floating point number, if possible.
from reportlab.pdfgen import canvas
from reportlab.pdfbase.ttfonts import TTFont
from reportlab.pdfbase import pdfmetrics
import time
import datetimedef create_chop(): #生成电子印章pdfmetrics.registerFont(TTFont('SimHei', 'SimHei.TTF'))c = canvas.Canvas("stamp.pdf")c.translate(inch,inch) # move the origin from the current (0,0) point to the (dx,dy) point 起始点位置c.setStrokeColorRGB(255,0,0) #边框颜色c.setFillColorRGB(0,0,0) #颜色填充#c.setFillAlpha(True)c.rect(0,0,2*inch,1*inch, fill=0) #边框的位置和大小fill=0不填充c.rotate(0)c.setFillColorRGB(255,0,0)c.setFont('SimHei', 20)c.drawString(35, 50, "受 控") #drawString(self, x, y, text, mode=None, charSpace=0, direction=None, wordSpace=None)c.setFont("Helvetica", 20)c.drawString(25, 5, "Controlled")c.setFont("Helvetica", 13)createdate=(datetime.datetime.now()).strftime("%Y-%m-%d")c.drawString(35, 30, createdate)c.setFont("Helvetica", 4)tag=str(int(time.time())) #给文件加时间戳c.drawString(5, 65 ,tag)c.showPage()c.save() return tagdef pdf_chop(source,watermark,ID): #合并pdfreader=PyPDF2.PdfFileReader(open(source,"rb"))#print("reader",reader)watermark=PyPDF2.PdfFileReader(open(watermark,"rb"))#print("watermark",watermark)writer=PyPDF2.PdfFileWriter()for i in range( reader.getNumPages()):page= reader.getPage(i)page.mergePage(watermark.getPage(0))writer.addPage(page)filename=(source.split(".")[0]).split("\\")[-1]#print("filename",filename)outputStream=open("pic_chop\\"+filename+"_"+ID+".pdf","wb")writer.write(outputStream)outputStream.close()if __name__ == "__main__":path=os.getcwd()rawfie_dir=os.path.join(path,"pic_source")#print(rawfie_dir)for i in os.listdir(rawfie_dir):if i.endswith("pdf"):ID=create_chop()sourcefile=os.path.join(rawfie_dir,i)print("正在编辑原文件:"+sourcefile+"请等待....")pdf_chop(sourcefile,"stamp.pdf",ID)print("文件完成")
文件发放管理-给PDF文件添加电子受控章相关推荐
- Java pdf文件传输_java中pdf文件的管理(pdf文件转png文件,base64传输文件以及删除)...
org.apache.pdfbox pdfbox 2.0.12 影像文件转为base64编码使用java自带的BASE64Encoder类 代码部分: 前端上传文件的保存: @RequestMappi ...
- Zotero科研文献管理 - 将PDF文件同步到Google Driver中,不同电脑无缝使用
将Zotero中的附件文件比如PDF同步到Dropbox或者Onedrive或者Google Driver中,解决Zotero免费云空间限制,实现足够云空间附件文件存储,并实现不同电脑之间无缝迁移使用 ...
- 如何将多个PDF文件合并为一个PDF文件?PDF文件合并教程
如何合并PDF文件?PDF我们都不陌生,很多人经常在网站上搜狐各种类型的PDF资料,但是有时因为资料太多不好管理和查阅,如果可以把同类型的多个PDF文件合并为一个PDF文件,那无论是保存还是查阅,都会 ...
- 怎么将几张pdf合并成一张_如何将多个pdf文件合并成一个pdf文件?
原标题:如何将多个pdf文件合并成一个pdf文件? 我很喜欢使用PDF文件格式,为什么呢?因为PDF具有许多其他电子文档格式无法相比的优点.PDF文件格式可以将文字.字型.格式.颜色及独立于设备和分辨 ...
- PDF文件编辑技巧之PDF文件去除水印方法
PDF文件相信大家都会使用到,有时候我们不止局限于使用PDF文件还需要编辑PDF文件的时候,那么PDF文件的编辑技巧有什么呢.总所周知PDF文件的编辑是需要PDF编辑器的,编辑器的使用技巧有什么呢,好 ...
- caj文件浏览器_caj文件怎么转换成pdf文件?试试这样操作,3步成功转换
诸位小伙伴用过caj文件吗?和pdf文件类似,也和电子书格式有点像,是我们办公中会用到的格式文件,不过假如你分享了一份caj格式的文档给别人,如果他们的电脑上没有安装对应的浏览器,则无法打开.阅读文件 ...
- 图解python pdf_Python合并同一个文件夹下所有PDF文件的方法
一.需求说明 下载了网易云课堂的吴恩达免费的深度学习的pdf文档,但是每一节是一个pdf,我把这些PDF文档放在一个文件夹下,希望合并成一个PDF文件.于是写了一个python程序,很好的解决了这个问 ...
- python合并文件夹下的文件_Python实现合并同一个文件夹下所有PDF文件的方法示例...
本文实例讲述了Python实现合并同一个文件夹下所有PDF文件的方法.分享给大家供大家参考,具体如下: 一.需求说明 下载了网易云课堂的吴恩达免费的深度学习的pdf文档,但是每一节是一个pdf,我把这 ...
- 电脑上怎么做pdf文件_怎么合并PDF文件?PDF合并软件哪个好?
怎么合并PDF文件?很多人现在在工作中都会使用到PDF格式的文件.在传输这些PDF文件时,如果一张一张的发送速度会很慢,也会给文件接收者造成麻烦.遇到这种情况时,我们最好将这些PDF文件先合并起来.P ...
最新文章
- 疑难杂症--单回话下 WITH(NOLOCK)返回更多数据
- Java模拟面试总结
- jpa 查找最后一条数据_查找数据的最后1条记录,你用了2小时,同事1分钟就搞定了...
- 有关协同开发实际工作的问题
- 树莓派的九周年: 9 件事你可能不知道
- Graphviz之DT:手把手教你使用可视化工具Graphviz将dot文件转为结构图的pdf文件
- opengl加载显示3D模型ZGL类型文件
- python点操作符语法_最基础的python语法
- 【开发调试】谷歌浏览器中调试移动网页和测试网速下页面效果
- 介绍一些房屋抗震的科普知识
- 《现代操作系统教程》课程课后习题及答案
- Spring的IOC和AOP原理
- gitbub上传代码
- 使用Ghidra对WhatsApp VOIP Stack 溢出漏洞的补丁对比分析
- R语言安装Sampling包
- linux中nginx启动,重启,关闭命令
- 小汇总|想学机器学习吗?带坑的那种
- Flutter侧边栏控件-SideBar
- pandas数据处理基础——筛选指定行或者指定列的数据
- SqlServer数据库定期自动备份与清除
热门文章
- 详细分析银行招聘流程
- 2023年5月16日 星期二
- Maven错误总结:错误LifecyclePhaseNotFoundException,Unknown lifecycle phase “mvn“. You must specify a valid
- spring boot 设置tomcat post参数大小限制修改
- 【Android 教程系列第 11 篇】安卓手机的制造商有哪些
- 解除网吧 限制,网吧上网的绝招
- MySQL安装与Navicat 图形化客户端工具
- appium java类库下载_Appium移动自动化测试之Java篇
- tableau入门_6_Tableau如何发布共享图表仪表盘
- 需求规格说明书(模板)