本站已安全运行:,共收录 35812 个站点! 网站地图
当前位置: 首页 > 站长问答 > 域名主机

外贸企业邮箱哪家好(ssl证书备注名什么意思)

发布时间:2023-09-18 00:01:51  浏览:
本文目录

ssl证书备注名什么意思,外贸企业邮箱哪家好?

邮箱是外贸公司必备的工具之一,特别是外贸人员,频繁的使用邮件往来,邮件更是可以作为结算的凭证,如果邮件内容被他人知晓,那会造成公司的经济损失及业务资料的流失。邮箱地址被伪造:当前钓鱼邮件众多,没有经验的人员就容易中招,导致邮箱密码被盗,坏人查看您的邮件往来,以您员工的名义和发信习惯给您的客户发邮件,骗取货款。会给公司造成一定的经济损失,及客户丢失。

TOM是一家拥有多项安全保障的。当账号出现被人冒用的情况,会把异常情况发邮件至用户指定邮箱中,方便用户随时掌握和规避诈骗事件的发生。

在外贸行业竞争日益加剧的时期,快鱼吃慢鱼,一个客户的反馈询价邮件如果没能及时收到,都可能直接导致订单丢失。TOM分散布局服务器架构,不会因为单台或单组服务器故障而导致服务器终止。

外贸企业邮箱的移动办公能也是必须要有,外贸人士都清楚,业务是跑出来的,客户回信要最短时间看到,并回复,才能有更多的机会。这里就要说说,TOM为此推出的随心邮服务,随心邮是个服务号,可以手机操作收发信,分享邮件,更有自定义提醒功能,确保不错过每一封邮件,在线支持21种文件格式的查看。

外贸企业邮箱必须要有专门的7*24小时客服热线;多种方式,多个渠道,一旦出现故障,能第一时间进行解决问题,避免造成损失。在线等多渠道。拥有强大的客服团队,保障客服接通率。

TOM企业邮箱是98年推出全中国电子邮箱起至今,已有近20年的运营经验,培养了中国人使用邮箱的习惯。TOM企业邮箱使用独特的反垃圾系统,为知名运营商提供电子邮件整体技术解决方案及企业邮局运营服务,给用户提供邮件系统软件和反垃圾服务。采用双重通道实现海外通信,使用高信誉的IP实现国内独有的点对点直接发送方式,快速的发送海外邮件。

TOM企业邮箱在市场也是近20年的企业级邮箱服务商,TOM企业邮箱技术在原有的TOM邮箱基础上,不断升级改造,更完善的专业的企业级邮箱在杀毒、反垃圾和商务沟通上更能给客户带来实际的最佳体验,更有多种功能针对企业痛点开发而来。

Java程序员面试中容易被问哪些问题?

不请自来

面试总结——Java高级工程师

面试前面也总结了一和二, 这第三篇可能更偏向于是内心的独白篇和面试技巧总结吧.....

一、独白

之前也面试别人,现在轮到自己找工作,怎么说呢,每个面试官的看法不一样,面试的方式就不一样,比如我面试别人我喜欢问项目中他用到了那些,然后针对用到的技术去问一些问题,或者说对于某些场景的一些技术实现方案是我特别喜欢问的,比如当你的接口服务数据被人截包了,你如何防止数据恶意提交? 相对来说,Java的底层和基础会问的少一点,当然问的少不是代表不问,而是说侧重点在于你的所做过的项目和你的设计思路如何。当然,懂基础和底层更好,这样能让你知其然,更知其所以然,写出来的代码和程序更具有健壮性和可维护性。所以说,基础还是很重要的。

现在轮到自己出去面试,怎么说呢,其实还是挺紧张的,原以为自己不会因此紧张或者焦虑,实际上,还是有的,在没找到合适的工作的时候,甚至晚上有点睡不着觉,总觉着有什么事压在心头,睡觉都不安心。既然睡不着,那还是看看资料吧,我有个习惯,睡前看点问题,第二天早上就能想到答案,睡前记点资料,第二天早上就能记得特别深刻,不说废话了,直接进入正题吧。

二、面试技巧

1、背熟你的简历

原因:面试的第一个问题,一般都是让你简单介绍下你自己,或者介绍一下你最近的项目,而一个面试者,如果连自己的简历都无法熟知,对里面提到的项目、技术都无法描述清楚的话,我想没有哪家公司会接受这样的,哪怕你是超级人才,你自我表述不行,估计也会为此头疼,所以,切记:一定要背好自己的简历,不要求你能全部记下,至少要熟记你最近所待过的两家公司,这两家公司里面你做过的项目,你负责的模块,项目里面用到的技术以及相对应的技术实现方案(这个尤为重要)。

2、深入了解并熟记部分Java基础知识

原因:大部分公司无论面试初级还是高级,无论是笔试还是面试,都会问到一系列基础题,这些基础题大概涵括jvm、字符串、集合、线程等等,如果说每一个让你死记硬背你肯定记不住,那么就是理解中记忆了,拿jvm来说 ,如果让你谈谈你对jvm的理解, 那么你首先得知道JVM有哪些结构组成,每个结构用来做什么的,然后考虑一个Java对象从创建到回收,如何途径JVM这些结构的。如果你从这些方面来综合记忆,相信事半功倍,并且你理解的更透彻。 至于如果让你谈集合,举例List集合下面ArryList、LinkedList、Vector等集合的区别,那么同样的方法,你需要理解每一个的结构组成是什么,你才能知道他有什么作用,这样你在平时的用法上会更精炼,而且在面试过程中,也不至于哑口无言。

3、保持自信心和沉重冷静的心态

原因:面试过程中,自信是少不了的,相信你可以, 面试的路上可以自己对自己说一句: I belive I can ! 反正我就是这么做的,自我的心里暗示吧,其实面对面试官的时候,你自信的状态也会让面试官觉得你是个很有底气的人,至少从感觉上会给你打个高分。另外还有就是保持沉重冷静,如果是让你提供技术方案或者说说某个技术原理,没必要一紧张一咕噜的什么都说,你可以对面试官说:我先想想,然后自己组装记忆中的知识,组装下语言,有条理的说出来,这样能更好的表现你的才能,不是吗? 面试谁都会紧张,我也会紧张,有时候明明记得的知识点忘了,没关系,大胆的说忘了,或者直接说不知道。 要记住,有部分不知道没关系,如果全都知道,那你应该是CTO级别了(开个玩笑)。

4、尽量记住面试过程中你回答不出来或者回答存在不妥的问题

原因:面试失败了没关系,毕竟每个公司的要求不一样,问的问题和你擅长的方面可能有所出入,但是请记住一点:面试过程中那些你回答不出来问题,或者你自己感觉回答不太准确的问题,自己记下来,如果不会的,你可以当场问问面试官有没有好的解答,如果面试官不愿意告诉你(一般是基础方面面试官就懒得答你),那么你就自己回家慢慢查资料,如果是某些特定的技术,也可以自己写写案例什么的,毕竟知识点就那么多,问题百变,原理不变,面试也是一个学习知识的过程,让你了解大部分公司目前需要或者要求的技术。这次不知道,下次就知道了

5、去面试之前,最好先了解你要去面试公司的情况(包括产品、项目情况)

原因:俗话说,知己知彼,百战不殆,面试就是一场战斗,你需要了解你面试公司基本情况,包括岗位要求,这样你就能大概知道你需要面试的这家公司的技术要求情况。 为何让你去了解这家公司的主营产品和项目呢,就是让你大概了解这家公司的一个技术架构的情况,包括你可能对他们的一种实现方式提出质疑和疑惑,相信面试官很愿意帮你解答这些问题的。这样你既图了表现,也学到了知识,何乐而不为。

6、合理安排你的面试时间(如果有多家公司的面试机会,尽量把你想去的公司放到最后去面试)

原因:估计很多人都不理解这个,可能大部分的人对于如何安排面试时间比较迷茫,随意安排。可是这里有个技巧,如果同时有多个面试机会,你把你最想去的公司放到最末尾去面试,这样你经历过了前面的这些公司筛选,如果成功了是个机会,如果没成功,也是为最后做铺垫。 不过这里就需要考虑两点:1、你需要记住你投简历的公司和基本情况(这说明你不是海投的) 2、如果记不住,那么可以先应答一个时间,后续了解公司信息之后,通过邮件或者其他方式与其约定,调整面试时间。而且建议安排一天的面试公司不要超过两家,最好的是上午一家,下午一家,这样你能有充足的时间调整状态。

三、面试题基础总结

1、 JVM结构原理、GC工作机制详解

答:具体参照:JVM结构、GC工作机制详解,说到GC,记住两点:1、GC是负责回收所有无任何引用对象的内存空间。 注意:垃圾回收回收的是无任何引用的对象占据的内存空间而不是对象本身,2、GC回收机制的两种算法,a、引用计数法 b、可达性分析算法( 这里的可达性,大家可以看基础2 Java对象的什么周期),至于更详细的GC算法介绍,大家可以参考:Java GC机制算法

2、Java对象的生命周期

答:创建阶段 、 应用阶段 、不可见阶段 、不可达阶段 、收集阶段 、终结阶段、 对象空间重新分配阶段等等,具体参照:Java 对象的生命周期

3、Map或者HashMap的存储原理

答:HashMap是由数组+链表的一个结构组成,具体参照:HashMap的实现原理

4、当数据表中A、B字段做了组合索引,那么单独使用A或单独使用B会有索引效果吗?(使用like查询如何有索引效果)

答:看A、B两字段做组合索引的时候,谁在前面,谁在后面,如果A在前,那么单独使用A会有索引效果,单独使用B则没有,反之亦然。同理,使用like模糊查询时,如果只是使用前面%,那么有索引效果,如果使用双%号匹配,那么则无索引效果

5、数据库存储日期格式时,如何考虑时区转换问题?

答:使用TimeStamp , 原因参照:Java编程中遇到的时区转换问题

6、JavaObject类中有哪些方法?

答:Object有哪些方法

7、HTTP协议,GET和POST 的区别

答:浅谈HTTP中GET和POST的区别

四、线程、设计模式、缓存方面

1、SimpleDataFormat是非线程安全的,如何更好的使用而避免风险呢

答:关于SimpleDateFormat安全的时间格式化线程安全问题

2、如何看待设计模式,并简单说说你对观察者模式的理解

答:1、设计模式有神马用2、观察者模式类图及实现

3、集群环境中,session如何实现共享

答:1、Java集群之session共享2、session多服务器共享方案,还有一种方案就是使用一个固定的服务器专门保持session,其他服务器共享

4、分布式、集群环境中,缓存如何刷新,如何保持同步?

答:A、缓存如何刷新?1、定时刷新 2、主动刷新覆盖,每个缓存框架都有自带的刷新机制,或者说缓存失效机制,就拿Redis和 Ehcache举例, 他们都有自带的过期机制,另外主动刷新覆盖时,只需获取对应的key进行数据的覆盖即可

B、缓存如何保持同步? 这个redis有自带的集群同步机制,即复制功能,具体参考:基于Redis分布式缓存实现,Ehcache也有分布式缓存同步的配置,只需要配置不同服务器地址即可,参照:Ehcache分布式缓存同步

5、一条sql执行过长的时间,你如何优化,从哪些方面?

答:1、查看sql是否涉及多表的联表或者子查询,如果有,看是否能进行业务拆分,相关字段冗余或者合并成临时表(业务和算法的优化)

2、涉及链表的查询,是否能进行分表查询,单表查询之后的结果进行字段整合

3、如果以上两种都不能操作,非要链表查询,那么考虑对相对应的查询条件做索引。加快查询速度

4、针对数量大的表进行历史表分离(如交易流水表)

5、数据库主从分离,读写分离,降低读写针对同一表同时的压力,至于主从同步,MySQL有自带的binlog实现 主从同步

6、explain分析sql语句,查看执行计划,分析索引是否用上,分析扫描行数等等

7、查看mysql执行日志,看看是否有其他方面的问题

个人理解:从根本上来说,查询慢是占用mysql内存比较多,那么可以从这方面去酌手考虑

五、设计方案相关

面试还会问到一些关于设计方案相关的问题,比如

1、你的接口服务数据被人截包了,你如何防止数据恶意提交?

答:我们可以在接口传输参数里面设置一个业务编号,这个编号用来区分是否重复提交。这样即使数据被抓包了,对方也无法区分每个字段你的含义,这时,这个业务编号的作用就来了

2、假设服务器经常宕机,你从哪些方面去排查问题?

答:这个就留个各位看官补充了,可评论回复

总而言之该看的还是得看,还学的还是得学。再次强调,基础很重要!面试技巧同样很重要,还是那句话:祝愿各位看官都能找到心仪的工作吧~~

另外,奉劝大家不要频繁跳槽,这些知识点能提升固然好,不要盲目跳槽,找工作很累的,而且没有哪家公司喜欢频繁跳槽的员工

Java程序猿跳槽应该学哪些方面的技术

互联网产品、大型企业级项目常会用到的:

并发处理技术。具体到Java上通常是涉及java.util.concurrent、并发锁机制、NIO等方面,当然最近比较火爆的Netty框架也可以作为高并发处理的备选方案之一,这需要对Java的线程调度机制有着比较深的理解。不过这些可能会涉及并发控制的对象(比如reentrantlock等)只能存在于一个JVM里的问题,一旦系统规模大到需要部署多个JVM来处理并发的情况,则需要采用共享session的技术(比如spring-session),或者尽可能将系统后台设计为无状态的服务,这需要对RESTful有着较深的理解。

高可用、负载均衡技术。互联网产品、企业级应用通常要求一年里的Downtime控制在很小的范围内,这需要足够的高可用和负载均衡架构来支撑,这个一般和Java技术本身没太大关系,但却是一名初级程序员向高级程序员甚至是架构师CIO进阶的必备技术,因此可以适当了解一下Nginx、HAProxy等对这方面的支持。另外现在最“时髦”的做法是将应用docker化,配合ETCD、kubernetes等工具在容器的层面上实现高可用和负载均衡,当然这需要看实际的需求,最时髦的不见得是最适用的,要考虑构建成本。

缓存技术。缓存应该是大型系统中或高并发条件下提高响应速度的亘古不变的真理(虽然也看到过淘宝搜索商品功能采用的大数据处理技术实现的零缓存的文章,但能达到淘宝的体量和技术水平一般不太可能),群号:468897908高级架构群 备注好信息!这方面的工具太多了,ehcache、memcached、redis……从Java的角度来讲,需要了解的一是Java对这些工具的连接器,二是缓存技术背后的JSR-107标准,可以参考spring-cache的实现,阅读一下源码加深理解。

异步处理技术。这通常也是抵消高并发的处理手段之一,从Java的角度看最简单的异步处理就是新启动一个异步线程,这同样也需要对Java的线程调度有所了解,当然也可使用Spring中的@Async之类的也可以简单实现异步线程的处理。如果是非常消耗资源的业务处理,简单的异步线程是满足不了需求的,这就需要一些消息中间件来做这些异步处理了,消息中间件有很多,activemq、rabbitmq、kafka……需要了解的是Java对这些中间件的连接器。不过异步处理中最关键的是事务保证的问题,这可能需要对事务的两步提交有所了解。

在这里我有一个专门为跳槽JAVA开发人员想要跳槽准备的一个线路图:

一共分为5大专题:

工程化专题:

源码分析:

分布式/高可用/高并发专题:

双十一架构:

性能优化:

怎么加入知识付费平台?

知识付费风口出来了,很多人既不想做挖矿的也不想做卖水的,而想做矿主,所以就需要动手操作了,

身边朋友问我,能否帮忙搭建一套嵌套 平台的知识付费系统呢?网上此类系统售价少则几千,多则上万元,我准备为大家写的一篇教程,即使是小白也能自己搭建这套系统。

互联网盈利,靠的是什么?靠资源、靠人脉、靠积累……

互联网快速盈利,靠的是什么?唯有风口!站在台风口,猪都能飞上天。而2020年末的新晋风口:知识付费网课系统。2020年是全民网络创业(副业)的元年,由于疫情实体行业不景气,加上各种网络上头部玩家的不断增加,越来越多的人开始加入网络创业的付费学习中来。别人盯着客户,你盯着代理。别人盯着代理,你盯着平台。别人搬砖我淘金,别人淘金我卖水。别人卖水怎么办?我卖抽水机!永远比别人高一层,收入就能比别人多十倍。

很多小白没有货源、不会谈单、不会售后、不会搬运、不会引流。

而你却拥有一套属于自己的知识付费盈利系统,实现全自动的引流和变现,并且为用户提供物超所值的服务,既能跟着你学习,又能跟着你创业,谁不心动?

知识付费分销搭建详细步骤

01首先自己搭建系统优势

搭建一套自己的知识服务系统,提高用户体验,方便学员随时随地的学习,知识付费项目确实是一个人靠自由职业状态可以完成的项目!

02准备的素材

(1)备案过的域名,另加一个虚拟主机或者云服务器vps(可开启ssl,简单的说htpps加密),备注:系统选择linux系统/ mysql5.7, php版本5.72及以上版本。

域名和VPS购买就不教了。百度下即可、

(2) 注册好服务好然后认证(认证之后可以查看:开发者ID(AppID) 和开发者密码(AppSecret)),认证时候建议选择服务好,便于开通 支付。

(3)知识付费平台源码

(4)注册营业执照,可个人的也可是有限公司用于备案和注册服务好。

具体搭建步骤1、先搭建和安排知识付费的环境,先安装宝塔面板,然后把源码解压安装。

不会的到B站学习建站

2.是解析域名,根据要求填写数据库信息,和管理员基本信息,我这里就不细说,

3,记下登录账号和密码还有IP地址。然后登录即可

到此后端安装成功!

大概流程写完了,如果要具体到细节就不是这么一点点内容能写完了,希望对你有帮助。

iccssi智能门锁说明书?

(1)*号键+管理员指纹

(2)*号键+开门密码+管理员密码(默认是00)

注册指纹

进入到管理模式,按1选择用户管理进入到指纹界面,再按1添加指纹 输入编号 #输入指纹。

备注:是管理指纹

是主人指纹

是客人指纹

管理指纹:除正常开锁外,还可以进入管理程序和开反锁

主人指纹:除正常开锁外还可以开反锁

客人指纹:只能正常开锁

删除指纹

进入到管理模式,按1选择用户管理,再按2选择删除指纹。

注册密码

进入到管理模式,选择1用户管理,再按 选择修改密码,输入密码后按#键结束(修改过程中需要输入两次密码)。

添加卡片

进入到管理模式,按1选择用户管理,再按1选择添加卡片。

有什么软件堪称办公神器?

有什么软件堪称办公神器,让你每天的工作轻松不累?其他作者已经介绍过很多的小软件,这里就不重复介绍了,各有各的好处,但我认为算不上办公神器,充其量也就是比较好用的办公文档小工具,凭什么这么说呢?因为我还有一个更加高效的办公神器,那就是python

一,说python是办公神器,那么,它能做什么

(一)1、openpyxl的使用操作EXCEL

pip install openpyxl

第一步:打开工作簿(读取Excel文件中所有的数据保存为工作簿对象)

workbook = openpyxl.load_workbook('cases.xlsx')

第二步:选中表单对象

sheet = workbook['login']

第三步:通过表单选中表格读取数据

①读取内容(第五行第四列)

data = sheet.cell(row=5,column=4)printa(data.value) # 获取内容用value方法

②写入内容(保存才会生效)

sheet.cell(row=7,column=3,value='("Python","123456")')# 写入内容后,一定要保存才会生效workbook.save('cases.xlsx')

③获取最大行和最大列

# 最大行sheet.max_row# 最大列sheet.max_column

④按行获取所有的格子对象,每一行格子放入一个元组中

sheet.rows

注意点:不要随便在表格中敲空格

(二)、openpyxl的封装

导包

import openpyxl

封装

class ReadExcel(object):"""操作Excl文件"""def __init__(self, fileName, sheetName):""" 初始化方法 :param fileName: Excel文件名 :param sheetName: 表单名 """self.fileName = fileNameself.sheetName = sheetNamedef open(self):"""打开工作簿,选中表单"""self.wb = openpyxl.load_workbook(self.fileName)self.sh = self.wb[self.sheetName]def save(self):"""保存工作簿对象的方法"""self.wb.save(self.fileName)self.wb.close() # 这一行加不加关系不大,加了可以释放内存

1、读取数据

①将每条数据存储成字典类型

def read_data_dict(self):"""读取数据(将每条数据存储成字典类型)"""# 打开工作簿 self.open() # 通过rows获取Excel文件中所有的行数据,然后把数据转成列表 rows = list(self.sh.rows) # 表头 title = [] # 遍历Excel文件中的第一行表头信息 for i in rows[0]: title.append(i.value) # 用例数据列表 cases = [] # 遍历用例数据行 for row in rows[1:]: # 定义一个列表存放每一行的数据 data = [] # 遍历每一行的数据 for r in row: data.append(r.value) # 把每一行的数据通过zip进行打包,然后转成字典,存入到用例数据列表中 case = dict(zip(title, data)) cases.append(case) return cases

②将每条数据存储成CaseData类对象类型

class CaseData(object):"""保存用例数据类"""pass

def read_data_obj(self):"""读取数据(将数据保存到CaseData类中)"""self.open()rows = list(self.sh.rows)# 表头 title = [] # 遍历Excel文件中的第一行表头信息 for i in rows[0]: title.append(i.value) # 定义用例列表,用来存放用例类列表 cases = [] # 遍历用例数据行 for row in rows[1:]: # 定义一个列表存放每一行的数据 data = [] # 遍历每一行的数据 for r in row: data.append(r.value) # 把每一行的数据通过zip进行打包,然后转成字典,存入到用例数据列表中 case = dict(zip(title, data)) # 定义一个用例存放类对象 case_obj = CaseData() for k, v in case.items(): # 通过setattr()给对象添加属性 setattr(case_obj, k, v) # 把对象添加到列表中 cases.append(case_obj) return cases

2、写入数据

def write_data(self, row, column, value):""" 写入数据 :param row: 行 :param column: 列 :param value: 数据 """self.open()# 指定行列进行写入数据 self.sh.cell(row=row, column=column, value=value) # 保存 self.wb.save(self.fileName) # 关闭 self.wb.close()

python 使用 PyPDF2 和 pdfplumber 操作pdf文档

1 说明

1.1 PyPDF2:使用它可以轻松的处理 pdf 文件,它提供了读,割,合并,文件转换等多种操作。

1.2 PyPDF2可以对PDF文件进行加密,解密,目前已经更新到PyPDF3版本,本文基于PyPDF2进行介绍。

1.3 环境:python3.8,deepin-linux操作系统,微软vscode编辑器。

2 安装

pip install PyPDF2#pip3.8 install PyPDF2 #本机安装

3 相关网址:

https://pythonhosted.org/PyPDF2/https://pypi.org/project/PyPDF2/1.26.0/https://github.com/mstamy2/PyPDF2/

4 PDF文件的合并,mergepdf.py代码如下:

#pdf文件合并=mergefrom PyPDF2 import PdfFileMergermerger = PdfFileMerger()#将3个pdf文件合并,注意路径和目录input1 = open("/home/xgj/Desktop/PyPDF2/1.pdf", "rb")input2 = open("/home/xgj/Desktop/PyPDF2/2.pdf", "rb")input3 = open("/home/xgj/Desktop/PyPDF2/3.pdf", "rb")#默认作为第一张,即position = 1,pages = (0,1)代表1.pdf的第一张,如果有很多张,注意取第几张到第几张merger.append(fileobj = input1, pages = (0,1))#与上面相同merger.merge(position = 2, fileobj = input2, pages = (0,1))# append entire input3 document to the end of the output document# 将3.pdf添加到上述的后面merger.append(input3)# Write to an output PDF document,生成新的pdfoutput = open("/home/xgj/Desktop/PyPDF2/document-output.pdf", "wb")merger.write(output)

5 拆分pdf文件,splitpdf.py代码

from PyPDF2 import PdfFileReader, PdfFileWriterdef split(path, name_of_split):pdf = PdfFileReader(path)for page in range(pdf.getNumPages()):pdf_writer = PdfFileWriter()pdf_writer.addPage(pdf.getPage(page))#拆分在根目录下#output = f'{name_of_split}{page}.pdf'#指定目录下output = f'/home/xgj/Desktop/PyPDF2/{name_of_split}{page}.pdf'with open(output, 'wb') as output_pdf:pdf_writer.write(output_pdf)if __name__ == '__main__':#要拆分的pdf文件及目录path = '/home/xgj/Desktop/PyPDF2/4.pdf'#注意name_of_split=NOsplit(path, 'NO')

6 pdf文件加密,jiamipdf.py代码

from PyPDF2 import PdfFileWriter, PdfFileReaderdef add_encryption(input_pdf, output_pdf, password):pdf_writer = PdfFileWriter()pdf_reader = PdfFileReader(input_pdf)for page in range(pdf_reader.getNumPages()):pdf_writer.addPage(pdf_reader.getPage(page))pdf_writer.encrypt(user_pwd=password, owner_pwd=None,use_128bit=True)with open(output_pdf, 'wb') as fh:pdf_writer.write(fh)if __name__ == '__main__':#input是需要加密的pdf文件和目录,output是生成加密的原pdf的新pdf文件 #自定义密码 add_encryption(input_pdf='/home/xgj/Desktop/PyPDF2/1.pdf', output_pdf='/home/xgj/Desktop/PyPDF2/1m.pdf',password='123456')

7 解密pdf文件

7.1 jiemipdf.py代码

import os#指定目录,即更改根目录的方法os.chdir('/home/xgj/Desktop/PyPDF2')from PyPDF2 import PdfFileReader,PdfFileWriterpdf_reader = PdfFileReader("1m.pdf")#知道密码情况下,注意是解密,不是破解密码pdf_reader.decrypt("123456")pdf_writer = PdfFileWriter()for page in range(pdf_reader.getNumPages()):pdf_writer.addPage(pdf_reader.getPage(page))with open("encrypted.pdf", "wb") as out:pdf_writer.write(out)

7.2 注意细节:适合批量解密pdf文件,并且自己知道密码。

7.3 注意代码简洁,导入os,提前设路径,顺带复习python的os模块的路径设置。

===========================

8 pdf加水印:watermarkpdf.py代码

from PyPDF2 import PdfFileReader, PdfFileWriter#安装:pip install reportlab,下次单独将这个模块from reportlab.lib.units import cmfrom reportlab.pdfgen import canvasimport reportlab.pdfbase.ttfonts# 创建水印信息def create_watermark(content):#生成一个单独的水印pdf,注意路径和目录file_name = "/home/xgj/Desktop/PyPDF2/mark.pdf"c = canvas.Canvas(file_name, pagesize=(30 * cm, 30 * cm))# 移动坐标原点(坐标系左下为(0,0))c.translate(4 * cm, 0 * cm)# 设置字体格式与大小,中文需要加载能够显示中文的字体,否则就会乱码,注意字体路径# 如果是中文就是trytry:reportlab.pdfbase.pdfmetrics.registerFont(reportlab.pdfbase.ttfonts.TTFont('yahei', 'hwfs.ttf'))c.setFont('yahei', 50)#如果是英文就是exceptexcept:# 默认字体,只能够显示英文c.setFont("Helvetica", 30)#这一行多次一举,注释掉#content = "I love python"# 旋转角度度,坐标系被旋转c.rotate(30)# 指定填充颜色c.setFillColorRGB(0, 0, 0)# 设置透明度,1为不透明c.setFillAlpha(0.05)# 画几个文本,注意坐标系旋转的影响c.drawString(0 * cm, 3 * cm, content)# 关闭并保存pdf文件c.save()return file_name# 插入水印def add_watermark(pdf_file_in, pdf_file_mark, pdf_file_out):pdf_output = PdfFileWriter()input_stream = open(pdf_file_in, 'rb')pdf_input = PdfFileReader(input_stream, strict=False)# 获取PDF文件的页数pageNum = pdf_input.getNumPages()# 读入水印pdf文件pdf_watermark = PdfFileReader(open(pdf_file_mark, 'rb'), strict=False)# 给每一页打水印for i in range(pageNum):page = pdf_input.getPage(i)page.mergePage(pdf_watermark.getPage(0))page.compressContentStreams() # 压缩内容pdf_output.addPage(page)pdf_output.write(open(pdf_file_out, 'wb'))if __name__ == '__main__':#需要加水印的pdf文件和目录pdf_file_in = '/home/xgj/Desktop/PyPDF2/123.pdf'#生成新的加过水印的pdf文件pdf_file_out = '/home/xgj/Desktop/PyPDF2/watermark.pdf'#设置加水印的文字内容:英文pdf_file_mark = create_watermark(r'I love python')#设置加水印的文字内容:中文#pdf_file_mark = create_watermark(r'水印')add_watermark(pdf_file_in, pdf_file_mark, pdf_file_out)

python 还可以使用 python-docx 操作 wordpython 使用 python-pptx 操作 PPTpython 如何自动收发邮件python 制作电话号码归属地查询工具

当然,如果你不懂python编程很难感受这些好处,python最大的好处是批处理,比如修改几千份合同,大 数据处理。

还有另一款办公神器是思维导图软件

思维导图近几年很火,原因就是它实用且功能强大,下面我们来看看思维导图有哪些功能。

第一,当然就是它的树形结构图,用来做做笔记,整理思路,讲课,可以很好的呈现一个人的思维路线路,例如,

第二,它还有很多功能模板,只要打开后直接编辑,非常的方便

第三,它很方便地导出各种文档格式。例如:导出为 Word、PPT、Excel等文档,便于后续所有人在此基础上修改和完善。

总之,这两款软件,也就是python和思维导图软件堪称办公神器,让你每天的工作轻松不累。

另外,

在工作中,我们通常不光追求工作轻松,最重要的是,能够升职加薪,如果你具备管理能力,你的个人价值和职场回报至少涨10倍。如果有需要的话,关注我或管理能力免费交流圈子,便于你第一时间看我们分享的管理经验。

文章来自网络整理,如有侵权联系站长删除!