python修改pdf文字_以编程方式更改PDF中文本的字体颜色
这是可能的,但不一定容易,因为PDF格式非常丰富。您可以找到详细描述它的文档here。第一个基本示例介绍了PDF如何显示文本:BT
/F13 12 Tf
288 720 Td
(ABC) Tj
ET
BT和ET是开始和结束文本对象的命令;Tf是使用外部字体资源F13(恰好是Helvetica)的命令,大小为12;Td是将光标定位在给定坐标的命令;Tj是为前一个字符串写入glyph的命令。它的风格有点像“反向波兰符号”(reverse-polish notation),而且确实非常接近Postscript的风格,Postscript是Adobe对排版的另一个重要贡献之一。在
问题是,PDF规范中没有任何规定,在页面上“看起来”像是属于一起的文本实际上必须“在”在一起;由于总是可以给出精确的坐标,如果PDF是由复杂的排版布局系统生成的,它可能会逐字符精确地定位文本,通过坐标。因此,以单词和句子的形式重建文本并不一定容易,它几乎和光学文本识别一样困难,只是你被精确地给出了字符(好吧,几乎。。。一些所谓的“图像”实际上可能显示为字符…;-)。在
pyPdf是一个非常简单的纯Python库,它是处理PDF文件的良好起点。它的“文本提取”功能非常简单,除了连接几个文本绘图命令的参数之外什么也不做;你会看到,在某些文档上已经足够了,而在其他文档上则很不可用,但至少这只是一个开始。在分发时,pyPdf对颜色几乎不做任何处理,但使用了一些可以补救的黑客攻击。在
reportlab强大的Python库完全专注于生成新的pdf,而不是解释或修改现有的pdf。在另一个极端,纯Python库pdfminer完全专注于解析PDF文件;它确实做了一些集群,试图在更简单的库遇到问题时重建文本。在
我不知道有没有一个现有的库可以执行您希望的转换任务,但是可以将这些现有的库混合并匹配以完成大部分任务。。。祝你好运!在
python修改pdf文字_以编程方式更改PDF中文本的字体颜色相关推荐
- java menuitem 图标_java – 如何以编程方式更改ActionBar中的MenuItem图标
如何以编程方式更改ActionBar中的MenuItem图标?我试着用 MenuItem menuItem = (MenuItem)findViewById(R.id.action_settings) ...
- python docx 替换文字_查找并替换.docx文件中的文本 - Python
我一直在寻找一种方法来查找和替换docx文件中的文本而运气不佳 . 我已经尝试过docx模块而无法使用它 . 最后,我使用zipfile模块计算了下面描述的方法,并替换了docx存档中的documen ...
- uitextfield 键盘类型_以编程方式更改UITextField键盘类型
UITextField有一个keyboardType属性: typedef enum { UIKeyboardTypeDefault, // Default type for the current ...
- 修改java bean,java – 以编程方式修改Spring bean
我目前正在开发一个Web应用程序.我知道Spring的一些基础知识,但是我并没有那么多地使用它,因此我决定提高我的Spring技能,而且我遇到了一个问题,我无法找到一个好的解决方案. 我想在我的应用程 ...
- powershell 编程_如何使用PowerShell以编程方式更改Visual Studio中的默认浏览器,并可能使自己陷入困境...
powershell 编程 UPDATE: Why my own MacGyver solution was brilliant in its horrible way, the folks over ...
- java layout_java - 以编程方式在LinearLayout中设置边距
java - 以编程方式在LinearLayout中设置边距 我正在尝试使用Java(而不是XML)创建一个LinearLayout,其中的按钮可以填充屏幕并具有边距. 这是没有边距的代码: Line ...
- 在Android中,如何以编程方式在dp中设置边距?
本文翻译自:In Android, how do I set margins in dp programmatically? In this , this and this thread I trie ...
- 如何以编程方式确定Java中的操作系统?
本文翻译自:How do I programmatically determine operating system in Java? I would like to determine the op ...
- 以编程方式使用 Word 中的内置对话框
以编程方式使用 Word 中的内置对话框 Visual Studio 2012 其他版本 Visual Studio 2010 Visual Stu ...
- android设置ap密码,Android AP Wifi - 以编程方式更改网络共享密码(setWifiApConfiguration)...
我正在尝试以编程方式更改Android AP Wifi密码,但不幸的是停止了工作. 使用Android 4.2工作正常,但4.4 Kitkat已停止. 我通过反射使用setWifiApConfigur ...
最新文章
- NLP任务语义相似数据准备及实战
- 均衡发展计算机教室材料,义务教育均衡发展材料.pdf
- 利用Travis CI 让你的github项目持续构建(Node.js为例)
- 【Anychat音视频开发】apache防盗链之mod_perl
- 2019牛客网暑假多校训练第四场 K —number
- 剑指 Offer 11. 旋转数组的最小数字 简单
- 教你做一个优秀的项目经理
- Bagging和Boosting的区别(面试准备)
- 机器学习-降维之奇异值分解SVD算法原理及实战
- 方程的解_NOI导刊2010提高(01) 组合数
- 建议重写equals方法时也一并重写hashCode方法
- mysql 强项_mysql数据目录迁移
- 如何开发出一个完整的Java Web项目?
- Dahlia:一个现代化的 React 框架
- flask-script插件
- 安装redhat系统步骤图解_用u盘安装redhat图文教程
- html中选择器的优先级别是,CSS优先级之计算选择器的特殊性( Selector’s specificity )...
- 网络舆情信息工作怎么做的措施及建议
- 【vue3】 vue3 几款值得推荐的UI组件库
- 【问题解决】win服务器磁盘初始化