Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

生成书签都是乱码 #180

Open
lsj8924 opened this issue Sep 22, 2023 · 4 comments
Open

生成书签都是乱码 #180

lsj8924 opened this issue Sep 22, 2023 · 4 comments
Labels
❤️ 好建议 书签 生成或编辑导航书签 改进 New feature or request 讨论 Further information is requested

Comments

@lsj8924
Copy link

lsj8924 commented Sep 22, 2023

https://vip.123pan.cn/1820746/directLink/DCC_decompilation_thesis1.pdf
此文档生成的书签是乱码,字体也有问题,只显示timeNewRom

@wmjordan
Copy link
Owner

暂时没办法。
源文档缺少用于将字库里字符号转换为统一码的 ToUnicode 信息,所以无法正确获取里面的文本。

@calcitem
Copy link
Contributor

乱码通常是由于缺少或不完整的ToUnicode映射导致的。由于原文档没有这些信息,所以很难直接从PDF中提取正确的文本。考虑如下几种可能的解决方案:

方法一:使用外部字体映射

  1. 创建字体映射文件: 创建一个包含字库与统一码(Unicode)映射关系的文件。
  2. 导入映射文件: 在软件中提供一个选项让用户导入该映射文件。
  3. 应用映射: 在生成书签或提取文本时,用这个映射替代缺失的ToUnicode信息。

方法二:OCR (Optical Character Recognition)

  1. 截取文本区域图像: 自动或手动选定含有目录信息的PDF页面区域。
  2. 运行OCR: 使用OCR工具(例如Tesseract)对选定区域进行图像识别。
  3. 生成书签: 根据OCR结果生成书签。

方法三:手动修复

  1. 显示问题区域: 在软件界面高亮显示那些可能导致乱码的区域。
  2. 手动输入: 提供一个选项让用户手动输入或修正这些区域的文本。

方法四:使用备选字体

  1. 检测缺失字体: 当发现PDF使用了缺失的字体时,自动提示。
  2. 使用备选字体: 让用户选择一个备选字体来替代缺失的字体。

如能在软件设置中加入这些选项,让用户根据自己的需要选择最合适的解决方案。这样既增加了软件的灵活性,也提高了用户体验。不过开发工作量和复杂度预计比较大。

@wmjordan
Copy link
Owner

wmjordan commented Oct 3, 2023

开发工作量的确不少。目前手头工作比较多,恐怕短时间内都无法实现。

@wmjordan
Copy link
Owner

方法一:使用外部字体映射

方法二:OCR (Optical Character Recognition)

方法三:手动修复

方法四:使用备选字体

方法一的可操作性太低了。能够自己撰写 ToUnicode 的朋友,必定是凤毛麟角。
对于缺少ToUnicode的文档,用方法二来实现,对于用户而言是最方便的。Tesseract 的识别能力太菜;而使用百度等在线识别引擎的话,免费额度又不多;用置顶的飞桨识别简体中文还可以,识别繁体中文的效果还有待改进。
方法三我之前也有想过,但是找了几个文档分析测试之后,我发现有不少这样的文档,表面上看起来,各页都采用同一种字体(例如宋体),而实际上被拆成了多个字体子集,即是每一页的“宋体”会分别对应一组不同的ToUnicode!要是用户有这功夫,都差不多够用来重新输入一份文档了。

用方法四能对付的文档(没有嵌入字体)不一定会造成乱码。程序可以让用户更改字体,只是现在没有“自动提示”功能(可以做,也不太难实现)。

@wmjordan wmjordan added 改进 New feature or request 讨论 Further information is requested ❤️ 好建议 书签 生成或编辑导航书签 labels Jan 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
❤️ 好建议 书签 生成或编辑导航书签 改进 New feature or request 讨论 Further information is requested
Projects
None yet
Development

No branches or pull requests

3 participants