企业的文控中心发放文件的时候一般需要盖受控章,表示文件版本和发放数量受到了控制.
传统操作方式:人工盖章+手工记录
本文先解决人工盖章问题
需要使用的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文件添加电子受控章相关推荐

  1. Java pdf文件传输_java中pdf文件的管理(pdf文件转png文件,base64传输文件以及删除)...

    org.apache.pdfbox pdfbox 2.0.12 影像文件转为base64编码使用java自带的BASE64Encoder类 代码部分: 前端上传文件的保存: @RequestMappi ...

  2. Zotero科研文献管理 - 将PDF文件同步到Google Driver中,不同电脑无缝使用

    将Zotero中的附件文件比如PDF同步到Dropbox或者Onedrive或者Google Driver中,解决Zotero免费云空间限制,实现足够云空间附件文件存储,并实现不同电脑之间无缝迁移使用 ...

  3. 如何将多个PDF文件合并为一个PDF文件?PDF文件合并教程

    如何合并PDF文件?PDF我们都不陌生,很多人经常在网站上搜狐各种类型的PDF资料,但是有时因为资料太多不好管理和查阅,如果可以把同类型的多个PDF文件合并为一个PDF文件,那无论是保存还是查阅,都会 ...

  4. 怎么将几张pdf合并成一张_如何将多个pdf文件合并成一个pdf文件?

    原标题:如何将多个pdf文件合并成一个pdf文件? 我很喜欢使用PDF文件格式,为什么呢?因为PDF具有许多其他电子文档格式无法相比的优点.PDF文件格式可以将文字.字型.格式.颜色及独立于设备和分辨 ...

  5. PDF文件编辑技巧之PDF文件去除水印方法

    PDF文件相信大家都会使用到,有时候我们不止局限于使用PDF文件还需要编辑PDF文件的时候,那么PDF文件的编辑技巧有什么呢.总所周知PDF文件的编辑是需要PDF编辑器的,编辑器的使用技巧有什么呢,好 ...

  6. caj文件浏览器_caj文件怎么转换成pdf文件?试试这样操作,3步成功转换

    诸位小伙伴用过caj文件吗?和pdf文件类似,也和电子书格式有点像,是我们办公中会用到的格式文件,不过假如你分享了一份caj格式的文档给别人,如果他们的电脑上没有安装对应的浏览器,则无法打开.阅读文件 ...

  7. 图解python pdf_Python合并同一个文件夹下所有PDF文件的方法

    一.需求说明 下载了网易云课堂的吴恩达免费的深度学习的pdf文档,但是每一节是一个pdf,我把这些PDF文档放在一个文件夹下,希望合并成一个PDF文件.于是写了一个python程序,很好的解决了这个问 ...

  8. python合并文件夹下的文件_Python实现合并同一个文件夹下所有PDF文件的方法示例...

    本文实例讲述了Python实现合并同一个文件夹下所有PDF文件的方法.分享给大家供大家参考,具体如下: 一.需求说明 下载了网易云课堂的吴恩达免费的深度学习的pdf文档,但是每一节是一个pdf,我把这 ...

  9. 电脑上怎么做pdf文件_怎么合并PDF文件?PDF合并软件哪个好?

    怎么合并PDF文件?很多人现在在工作中都会使用到PDF格式的文件.在传输这些PDF文件时,如果一张一张的发送速度会很慢,也会给文件接收者造成麻烦.遇到这种情况时,我们最好将这些PDF文件先合并起来.P ...

最新文章

  1. 疑难杂症--单回话下 WITH(NOLOCK)返回更多数据
  2. Java模拟面试总结
  3. jpa 查找最后一条数据_查找数据的最后1条记录,你用了2小时,同事1分钟就搞定了...
  4. 有关协同开发实际工作的问题
  5. 树莓派的九周年: 9 件事你可能不知道
  6. Graphviz之DT:手把手教你使用可视化工具Graphviz将dot文件转为结构图的pdf文件
  7. opengl加载显示3D模型ZGL类型文件
  8. python点操作符语法_最基础的python语法
  9. 【开发调试】谷歌浏览器中调试移动网页和测试网速下页面效果
  10. 介绍一些房屋抗震的科普知识
  11. 《现代操作系统教程》课程课后习题及答案
  12. Spring的IOC和AOP原理
  13. gitbub上传代码
  14. 使用Ghidra对WhatsApp VOIP Stack 溢出漏洞的补丁对比分析
  15. R语言安装Sampling包
  16. linux中nginx启动,重启,关闭命令
  17. 小汇总|想学机器学习吗?带坑的那种
  18. Flutter侧边栏控件-SideBar
  19. pandas数据处理基础——筛选指定行或者指定列的数据
  20. SqlServer数据库定期自动备份与清除

热门文章

  1. 详细分析银行招聘流程
  2. 2023年5月16日 星期二
  3. Maven错误总结:错误LifecyclePhaseNotFoundException,Unknown lifecycle phase “mvn“. You must specify a valid
  4. spring boot 设置tomcat post参数大小限制修改
  5. 【Android 教程系列第 11 篇】安卓手机的制造商有哪些
  6. 解除网吧 限制,网吧上网的绝招
  7. MySQL安装与Navicat 图形化客户端工具
  8. appium java类库下载_Appium移动自动化测试之Java篇
  9. tableau入门_6_Tableau如何发布共享图表仪表盘
  10. 需求规格说明书(模板)