这是可能的,但不一定容易,因为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中文本的字体颜色相关推荐

  1. java menuitem 图标_java – 如何以编程方式更改ActionBar中的MenuItem图标

    如何以编程方式更改ActionBar中的MenuItem图标?我试着用 MenuItem menuItem = (MenuItem)findViewById(R.id.action_settings) ...

  2. python docx 替换文字_查找并替换.docx文件中的文本 - Python

    我一直在寻找一种方法来查找和替换docx文件中的文本而运气不佳 . 我已经尝试过docx模块而无法使用它 . 最后,我使用zipfile模块计算了下面描述的方法,并替换了docx存档中的documen ...

  3. uitextfield 键盘类型_以编程方式更改UITextField键盘类型

    UITextField有一个keyboardType属性: typedef enum { UIKeyboardTypeDefault, // Default type for the current ...

  4. 修改java bean,java – 以编程方式修改Spring bean

    我目前正在开发一个Web应用程序.我知道Spring的一些基础知识,但是我并没有那么多地使用它,因此我决定提高我的Spring技能,而且我遇到了一个问题,我无法找到一个好的解决方案. 我想在我的应用程 ...

  5. powershell 编程_如何使用PowerShell以编程方式更改Visual Studio中的默认浏览器,并可能使自己陷入困境...

    powershell 编程 UPDATE: Why my own MacGyver solution was brilliant in its horrible way, the folks over ...

  6. java layout_java - 以编程方式在LinearLayout中设置边距

    java - 以编程方式在LinearLayout中设置边距 我正在尝试使用Java(而不是XML)创建一个LinearLayout,其中的按钮可以填充屏幕并具有边距. 这是没有边距的代码: Line ...

  7. 在Android中,如何以编程方式在dp中设置边距?

    本文翻译自:In Android, how do I set margins in dp programmatically? In this , this and this thread I trie ...

  8. 如何以编程方式确定Java中的操作系统?

    本文翻译自:How do I programmatically determine operating system in Java? I would like to determine the op ...

  9. 以编程方式使用 Word 中的内置对话框

    以编程方式使用 Word 中的内置对话框 Visual Studio 2012        其他版本                    Visual Studio 2010 Visual Stu ...

  10. android设置ap密码,Android AP Wifi - 以编程方式更改网络共享密码(setWifiApConfiguration)...

    我正在尝试以编程方式更改Android AP Wifi密码,但不幸的是停止了工作. 使用Android 4.2工作正常,但4.4 Kitkat已停止. 我通过反射使用setWifiApConfigur ...

最新文章

  1. NLP任务语义相似数据准备及实战
  2. 均衡发展计算机教室材料,义务教育均衡发展材料.pdf
  3. 利用Travis CI 让你的github项目持续构建(Node.js为例)
  4. 【Anychat音视频开发】apache防盗链之mod_perl
  5. 2019牛客网暑假多校训练第四场 K —number
  6. 剑指 Offer 11. 旋转数组的最小数字 简单
  7. 教你做一个优秀的项目经理
  8. Bagging和Boosting的区别(面试准备)
  9. 机器学习-降维之奇异值分解SVD算法原理及实战
  10. 方程的解_NOI导刊2010提高(01) 组合数
  11. 建议重写equals方法时也一并重写hashCode方法
  12. mysql 强项_mysql数据目录迁移
  13. 如何开发出一个完整的Java Web项目?
  14. Dahlia:一个现代化的 React 框架
  15. flask-script插件
  16. 安装redhat系统步骤图解_用u盘安装redhat图文教程
  17. html中选择器的优先级别是,CSS优先级之计算选择器的特殊性( Selector’s specificity )...
  18. 网络舆情信息工作怎么做的措施及建议
  19. 【vue3】 vue3 几款值得推荐的UI组件库
  20. 【问题解决】win服务器磁盘初始化

热门文章

  1. rmvb 转 avi 方法
  2. metasploit、msfvenom生成木马入侵电脑及手机
  3. HBuilder常用的快捷操作
  4. 五种最火供应链金融模式分析(附详细案例)
  5. 病毒木马查杀实战第012篇:QQ盗号木马之逆向分析
  6. codesmith oracle 64,CodeSmith OracleModel写法
  7. Linux下使用shell脚本实现自动升级
  8. 分页控件AspNetPager的用法
  9. 原来安卓手机安装谷歌服务框架这么简单!
  10. linuxshell如何实现进度条效果