小朋友们好,大朋友们好!
我是猫妹,一名爱上Python编程的小学生。
欢迎和猫妹一起,趣味学Python。
今日主题
有些PDF文档,有一些权限限制。
比如禁止复制文字,如何解除其权限限制。
和猫妹学Python,一起用pikepdf移除其权限限制。
项目需求
猫爸是一名80后程序员,平时除了写代码,就是阅读一些英文文档。
他的英文不咋地,过了四级,但是没有过六级。
他那个时候的大学啊,四六级考试满分还是100分,他第一次考了58分左右,第二次考了66分左右,非常侥幸地拿到了四级证书。
所以,别看他编程挺熟练的,英语发音真的没有我准。
这也不能怪他,他初中才开始学英文。
咱们呢?
小学就开始了。
没有可比性啊!
英语一般,他又要阅读不少英文文档,怎么办?
猫爸熟练网络啊,直接用现成的网络翻译。
翻译后的信息,先粗略读下,遇到非常重要的地方,再咬文嚼字,精读。
所以,他在阅读英文文档时,经常是复制加粘贴。
文档嘛!PDF居多。
有一次,又见他愁眉苦脸。
原来,竟然还有的PDF禁止复制文字。
这种比较少见,但是还是有的。
这些PDF在复制的时会报错如下错误:
为什么呢?
遇到问题,解决问题,是猫爸一贯的作风。
逢山开路,遇水搭桥。
这次,他又拿起Python这个利器,对这个小限制发起了挑战。
程序演示
这个没有什么可演示的,就是移除PDF的一些权限限制。
文档处理前,有权限显示,比如上面一些图片,不能复制文字等。
处理后呢?限制消除了。
程序原理
程序是猫爸借鉴网上一位热心朋友的,小朋友网上搜索很容易找到的。
避免重复造轮子,这是猫爸常说的一句话。
这次用到的库是pikepdf,使用前先安装下。
pikepdf库
pikepdf基于QPDF,这是一个功能强大的PDF操作和修复库。
Github项目地址:https://github.com/pikepdf/pikepdf
PYPI地址:https://pypi.org/project/pikepdf/0.1.8/
Project description
pikepdf is a Python library for reading and writing PDF files.
pikepdf is based on QPDF, a powerful PDF manipulation and repair library.
Python + QPDF = “py” + “qpdf” = “pyqpdf”, which looks like a dyslexia test. Say it out loud, and it sounds like “pikepdf”.
Python 3.5 and 3.6 are fully supported.
Features:
- Editing, manipulation and transformation of existing PDFs
- Based on the mature, proven QPDF C++ library
- Reading and writing encrypted PDFs, with all encryption types except public key
- Supports all PDF compression filters
- Supports PDF 1.3 through 1.7
- Can create “fast web view” (linearized) PDFs
- Creates standards compliant PDFs that pass validation in other tools
- Automatically repairs damaged PDFs, just like QPDF
- Can manipulate PDF/A, PDF/X and other types without losing their metadata marker
- Implements more of the PDF specification than existing Python PDF tools
- For convenience, renders PDF pages or embedded PDF images in Jupyter notebooks and IPython
功能:
pikepdf类似于PyPDF2和pdfrw - 它提供对PDF功能的低级访问,并允许对现有PDF进行编辑和内容转换。
了解一些PDF规范的知识可能会有所帮助,另外它还无法将PDF转换为图像。
目前pikepdf不支持Python 2.7和早期版本的Python 3,但对这些版本的支持可能并不难实现。
pikepdf、PyPDF2、pdfrw功能对比:
好了,今天的分享就到这里,谢谢大家的阅读。
移除PDF文档的一些权限限制。
你学会了吗?
如果你遇到了这个问题,并且只想用编译好的可执行文件,可以找猫妹获取就行,拿来主义,为我所用。
我是猫妹,咱们下次见!