页次: 1
就是这个文件。
我略微观察了一下,乱码看起来和这个帖子里的有点像,然后我复制了一点乱码进行转换,果然可以转成中文。
至于解决方案,我在这里(PDF文档的乱码问题)看到了另一个阅读器——mupdf,用它果然可以正常显示。
可是,我还是不知道出问题的原因是什么。应该不是字体的问题(因为不是显示成方块),而是编码的问题。那么是制作pdf的时候因为不规范而出了问题吗?比如没有选择编码,所以okular使用了一个默认的编码?
okular/firefox有没有办法正常显示这样的文件呢?还是必须装多个阅读器?
离线
理论上,所有PDF文件乱码,都是制作PDF时不规范导致的~(其实这是国内很多大学的数字图书馆所面临的现状)
国内流行这样操作:在制作PDF文件时,想确认显示是否正常,就把PDF文件放在不同电脑/设备或不同系统里打开查看,而不是检查制作流程是否符合PDF规范,这留下太多漏洞,所以时不时给你乱下码;
避免显示乱码的最佳办法是在PDF文件中嵌入字体~
嵌入字体的PDF文件除了包含字体信息,也包含编码信息;
你那个文件,我检查了一下,嵌入字体信息为空,即没有嵌入任何字体;另外,那个文件一共使用了5种字体,只有宋体是正规字体,其它四种都不正规,即阅读器无法解析到字体的正确信息,所以不清楚应该从系统调用哪种字体;
无嵌入字体,且字体信息不正确,这两个情况同时发生,就算系统里有对应的字体,也会乱码;
mupdf其实用了一种中庸思维,即解析无嵌入字体文件时,从系统中找一种相近/默认字体进行替代;
所有文字式PDF乱码解决方案最终都是要指定替代字体,无非是具体怎么实现~
okular/firefox研究不多,但方向应该是强制字体替代;
windows下制作PDF一直存在这种乱象,linux下使用libreoffice就比较简单,因为libreoffice制作PDF时会强制嵌入字体,你想不嵌入,还真不太容易~
最近编辑记录 驿窗 (2019-01-17 01:04:41)
开源/Linux大众化,从驿窗开始~
离线
谢谢驿窗。
明白了,是制作不规范导致的。看来还是得装多个阅读器,不过也没什么负担就是。
离线
PDF上的文字应该是直接引用字体内部的CID,不用Unicode,编辑或者复制时依赖嵌入字体的CMap转换表给你临时生产Unicode数据,Adobe Reader最新版甚至能复制出富文本,不过这个肯定是依赖Windows的剪贴板OLE机制了,别的系统用不了。
最近编辑记录 xtricman (2019-01-17 23:04:56)
反社会,精神极其不稳定,随时可能炸碎身边所有人
离线
这种 PDF 最讨厌了。
离线
PDF上的文字应该是直接引用字体内部的CID,不用Unicode,编辑或者复制时依赖嵌入字体的CID-Unicode转换表给你临时生产Unicode数据,Adobe Reader最新版甚至能复制出富文本,不过这个肯定是依赖Windows的剪贴板OLE机制了,别的系统用不了。
X Window 剪贴板又不是不支持富文本,只要请求的类型提供方能够提供就行。
离线
页次: 1