只能复制为图片 PDF复制文本失败?看猫妹如何用Python搞定(10)

小朋友们好 , 大朋友们好!
我是猫妹,一名爱上Python编程的小学生 。
欢迎和猫妹一起,趣味学Python 。
今日主题
有些PDF文档,有一些权限限制 。
【只能复制为图片 PDF复制文本失败?看猫妹如何用Python搞定(10)】比如禁止复制文字,如何解除其权限限制 。
和猫妹学Python,一起用pikepdf移除其权限限制 。
项目需求
猫爸是一名80后程序员,平时除了写代码,就是阅读一些英文文档 。
他的英文不咋地,过了四级,但是没有过六级 。
他那个时候的大学啊,四六级考试满分还是100分 , 他第一次考了58分左右 , 第二次考了66分左右 , 非常侥幸地拿到了四级证书 。
所以,别看他编程挺熟练的,英语发音真的没有我准 。
这也不能怪他,他初中才开始学英文 。
咱们呢?
小学就开始了 。
没有可比性?。?

只能复制为图片 PDF复制文本失败?看猫妹如何用Python搞定(10)

英语一般,他又要阅读不少英文文档,怎么办?
猫爸熟练网络啊 , 直接用现成的网络翻译 。
翻译后的信息,先粗略读下,遇到非常重要的地方 , 再咬文嚼字,精读 。
只能复制为图片 PDF复制文本失败?看猫妹如何用Python搞定(10)

所以,他在阅读英文文档时 , 经常是复制加粘贴 。
文档嘛!PDF居多 。
有一次,又见他愁眉苦脸 。
原来,竟然还有的PDF禁止复制文字 。
这种比较少见,但是还是有的 。
这些PDF在复制的时会报错如下错误:
只能复制为图片 PDF复制文本失败?看猫妹如何用Python搞定(10)

为什么呢?
只能复制为图片 PDF复制文本失败?看猫妹如何用Python搞定(10)

只能复制为图片 PDF复制文本失败?看猫妹如何用Python搞定(10)

只能复制为图片 PDF复制文本失败?看猫妹如何用Python搞定(10)

遇到问题,解决问题 , 是猫爸一贯的作风 。
逢山开路,遇水搭桥 。
这次,他又拿起Python这个利器,对这个小限制发起了挑战 。
程序演示
这个没有什么可演示的,就是移除PDF的一些权限限制 。
文档处理前,有权限显示,比如上面一些图片,不能复制文字等 。
处理后呢?限制消除了 。
程序原理
程序是猫爸借鉴网上一位热心朋友的,小朋友网上搜索很容易找到的 。
避免重复造轮子,这是猫爸常说的一句话 。
这次用到的库是pikepdf,使用前先安装下 。
只能复制为图片 PDF复制文本失败?看猫妹如何用Python搞定(10)

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.
PythonQPDF = “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 Clibrary
  • 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复制文本失败?看猫妹如何用Python搞定(10)

只能复制为图片 PDF复制文本失败?看猫妹如何用Python搞定(10)

好了,今天的分享就到这里,谢谢大家的阅读 。
移除PDF文档的一些权限限制 。
你学会了吗?
如果你遇到了这个问题,并且只想用编译好的可执行文件,可以找猫妹获取就行,拿来主义,为我所用 。
我是猫妹,咱们下次见!
只能复制为图片 PDF复制文本失败?看猫妹如何用Python搞定(10)

相关经验推荐