V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  bard99  ›  全部回复第 1 页 / 共 2 页
回复总数  33
1  2  
225 天前
回复了 bard99 创建的主题 Java 有个思源宋体的字体使用疑惑,请大佬指点
@mw2c #15 @tabris17
我刚才做了几个实验,猜测找到了原因:

我使用 WPS 先生成 word ,再将 word 转成 PDF 。使用的是思源宋体:
https://i.imgur.com/KdOlwTl.png
https://i.imgur.com/XdpGQFT.png
然后使用 Python 脚本读取 PDF 内容和 Unicode 编码值:
https://i.imgur.com/AtMhzHZ.png
发现 WPS 生成 PDF 的文字是正常的「 4e59 」编码!

对比之下,我之前使用 itext 生成的 PDF 。使用的是思源宋体:
https://i.imgur.com/VKxU3bK.png
使用 Python 脚本读取 PDF 内容和 Unicode 编码值:
https://i.imgur.com/gRClrIO.png
这个 PDF 的文字是异常的「 2f04 」编码!

所以猜测可能就是 itext 的 bug:
1. 对于共用字型的字体,如:2f04 和 4e59 ,字型为「⼄」和「乙」。
2. itext 程序的 bug ,导致了在使用 html 生成 PDF 的过程中
3. 首先 html 文本传入的是 4e59 ,然后 itext 根据 4e59 找到了字体「乙-2f04/4e59 」
4. 然后写入生成 PDF 的过程中,使用了「乙」的字型,但错误的使用了 2f04 的 Unicode 编码!
a. 对于 WPS 来说没有这个问题,会使用 4e59 的 Unicode 编码。
5. 所以原因,还是 itext 的问题! [至于具体的原因,还得 debug 去看了;看了半天没看出来逻辑在哪里...] !
a. 初步推测,itext 根据 4e59 找到了字体「乙-2f04/4e59 」,然后写入 PDF 时写入了「乙-2f04 」,很可能就是获取了第一个 Unicode 编码值!而 WPS 可能是写入了「乙」,然后 Unicode 编码值则从原始文本获取,这样就关联正确了!
225 天前
回复了 bard99 创建的主题 Java 有个思源宋体的字体使用疑惑,请大佬指点
@tabris17 #14 刚用 fontstore 试了狮尾四季春、SiHei 字体,发现他们都没有给 2F04 编码添加字型!所以这 2 个字体生成的 PDF ,文字都是正常的,都是 4E59 编码的「乙」!
225 天前
回复了 bard99 创建的主题 Java 有个思源宋体的字体使用疑惑,请大佬指点
@mw2c 这 2 篇文字涨知识了,感谢。然后我本地试了一下 4 种正规化的结果,打印如下: https://i.imgur.com/eGLnvH5.png

这个结果看上去,好像可以得出:
- 只有「部首」字符(如:2f04 )在正规化后,可以变成正常的「单音」字符(如:4e59 )。
- 而「单音」字符的正规化,得到的仍然是它本身。

如果这 2 个结论对的话,在我的场景里,却是「单音」字符,转换后得到了「部首」字符,那就不符合这个结论了。
225 天前
回复了 bard99 创建的主题 Java 有个思源宋体的字体使用疑惑,请大佬指点
@NessajCN #9 感谢指正,试了下确实如你所说。 实际上我中间省略了一些过程,我是 debug 过程中,使用 itext 的 PdfReaderContentParser 读取生成后 PDF 文件,然后取出文本内容,在这里拿到了异常的 ⼄⽅ u2f04 。
225 天前
回复了 bard99 创建的主题 Java 有个思源宋体的字体使用疑惑,请大佬指点
@tabris17 #6 https://i.imgur.com/gUfWPBP.png
看到了,果然共用了字型!
225 天前
回复了 bard99 创建的主题 Java 有个思源宋体的字体使用疑惑,请大佬指点
@tabris17 难道上面截图里,表示的是 2f04 引用了 4e59 的字型?感觉可以说得通啊!
225 天前
回复了 bard99 创建的主题 Java 有个思源宋体的字体使用疑惑,请大佬指点
@NessajCN 直接复制 PDF 的文本出来,然后就可以查询了: https://i.imgur.com/FpwNFDT.png
我帖子里用的是 birdfont: https://birdfont.org/
225 天前
回复了 bard99 创建的主题 Java 有个思源宋体的字体使用疑惑,请大佬指点
@tabris17 大佬,怎么看是共用了一个字型呢?
309 天前
回复了 bard99 创建的主题 MacBook Pro mac#m1#鼠标彩虹圈#卡死
回帖:自动纠正关了后,出现频率确实有下降。现在是几周出现 1 次😂,解决办法还是进程里面 kill 掉简体中文输入法。
问题肯定是这个输入法有问题。
同事换搜狗输入法后没出现这个问题,我不想换🤣
316 天前
回复了 DosLee 创建的主题 程序员 关于 IntelliJ IDEA Debug 的问题
@luomao +1 ,之前用 zulu 的 arm 版 jdk8 ,debug 经常卡住;后面换了 oracle 的 jdk 后,debug 就没遇到这个问题了
320 天前
回复了 bard99 创建的主题 MacBook Pro m1 macbook pro 充电器灯不亮,不充电
回帖,去 apple 直营店预约维修了,判断是线的问题,在保修期内免费更换了~
339 天前
回复了 bard99 创建的主题 JetBrains IDEA 2023.1 顶部栏黑色
刚去官网看了下,果然是: https://youtrack.jetbrains.com/issue/IDEA-294063
339 天前
回复了 bard99 创建的主题 JetBrains IDEA 2023.1 顶部栏黑色
@yekern 😭😭难受,难道这是 bug 吗,我还以为是我设置什么的有问题
351 天前
回复了 bard99 创建的主题 MacBook Pro m1 macbook pro 充电器灯不亮,不充电
@Oilybear 是的,那我改天去试试
2023-02-16 14:59:55 +08:00
回复了 awanganddong 创建的主题 程序员 请教下快速生成 er 图的工具
可以试一下这个方式,挺好用灵活的:
1. DataGrid 逆向生成数据库的文件,导出 drawio 文件。
2. 使用 drawio 导出文件,自由编辑
2023-01-10 17:18:29 +08:00
回复了 bard99 创建的主题 MacBook Pro mac#m1#鼠标彩虹圈#卡死
@Crump 刚看了一眼,自动纠正的确是开了的。我关掉试试,半个月后来回帖看看
2023-01-10 14:51:48 +08:00
回复了 bard99 创建的主题 MacBook Pro mac#m1#鼠标彩虹圈#卡死
@Crump 我现在 13.1 版本,还是会出现
2022-12-24 16:27:03 +08:00
回复了 haolly 创建的主题 程序员 有没有比较好的办法来整理 PDF 中的 highlight 跟笔记?
margin note3 ,最近入坑的 app
2022-11-16 00:04:26 +08:00
回复了 bard99 创建的主题 问与答 notion 客户端网络很差
@dguge 我因为 chrome 经常开很多个 tab 标签页,所以网页的话无法很快切换到 notion 的标签页。
客户端的话,可以直接应用切换,更加方便。
2022-11-09 16:46:54 +08:00
回复了 wqhui 创建的主题 程序员 大家有什么优雅的密码管理方法
apple 的备忘录,配合 faceid 加密
1  2  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4064 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 22ms · UTC 05:17 · PVG 13:17 · LAX 22:17 · JFK 01:17
Developed with CodeLauncher
♥ Do have faith in what you're doing.