首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PDF复制文本失败(只能复制为图片)?和猫妹学Python,用pikepdf移除其限制(10)

小朋友们好,大朋友们好!

我是猫妹,一名爱上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文档的一些权限限制。

你学会了吗?

如果你遇到了这个问题,并且只想用编译好的可执行文件,可以找猫妹获取就行,拿来主义,为我所用。

我是猫妹,咱们下次见!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230222A00QJ300?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券