从乱码的pdf文件来看,问题都出在type0字体上了。深入了解一下的话,你会发现Encoding为Identity-H或者Identity-V的具有特殊含义,怎么个特殊法呢,就是可以直接用,下图是我在pdf reference 1.7中截取的一段话:

这段话我理解了一下,他应该是想说,Identity-H这种,他的cid,应该就对应gid。可以直接用的意思就是把cid当作gid使用。下图是Identity-H的cid-gid的CMap,是我从福昕的程序路径中发现的,当然,git上也有:

前面两个尖括号应该是cid起止范围,后面是gid的开始id,完全是一一对应。

所以在代码GrCIDFont初始化的时候,我给其加了个判断,

这样我们在后面的HTMLRenderer.dll中的Writer.h的WriterText函数中就可以判断用哪个了,如下

以上,我们就可以让大多数中文乱码的pdf正常展示了。我只是综合了几个常见的pdf乱码的错误来写的,pdf规范读的很粗略。如果各位高手有更好的解决方案,望不吝赐教。

ps:中间代码写的很奇怪,就不贴了。

onlyoffice pdf 乱码相关推荐

  1. Ubuntu下pdf乱码和rar解压后无效文件编码解决方案

    问题:pdf乱码,中文都显示不出来,只能显示英文. 解决方案: 1) sudo apt-get install poppler-data 2) sudo mv /etc/fonts/conf.d/49 ...

  2. 使用com.aspose.words将word模板转为PDF乱码解决方案(window下正常)

    使用com.aspose.words将word模板转为PDF乱码解决方案(window下正常) 参考文章: (1)使用com.aspose.words将word模板转为PDF乱码解决方案(window ...

  3. Java项目在Linux环境使用aspose把word转pdf乱码问题

    Java项目在Linux环境使用aspose把word转pdf乱码问题 一.问题 在项目中有word转pdf并展示的功能,在本地的windows环境下没有问题.但是放在Linux中部署运行,生成的pd ...

  4. php生成pdf乱码_php+tcpdf生成pdf: 中文乱码

    TCPDF是一个生成PDF的不错的库,可惜,官方对包括中文在内的东亚字体支持不怎么样的. 场景:某项目需要根据数据库信息生成pdf格式的发票,考虑采用稳定的tcpdf,虽然还有许多其它选择,但是这个应 ...

  5. java 生成pdf 乱码_利用java处理fop导出pdf的中文乱码问题解决方案

    本文的作用是,生成带中文的加密pdf格式的文件,防止被人修改. 在项目下建立docbook-xsl, fo-res, out, sample四个文件夹 docbook-xsl目录: 放从sourcef ...

  6. 解决 linux(centos7)word转换pdf时,pdf乱码问题

    本文解决当word转换为pdf时,pdf文档中的中文字体全部都是乱码(方框)的问题. 先简单的写一下word转换pdf的代码,这个网上有很多(最下方有引用一遍博客详细的讲解了如何转换) /**** @ ...

  7. 网页转pdf乱码问题,楷体部分出乱码

    网页转PDF,一直正常使用,今天突然乱码... 以为是网页编码问题...最后看了一下处理的后的网页,发现没问题... 最后发现是wkhtmltopdf的问题,无法解码楷体网页 删除楷体style后,转 ...

  8. aspose无法在Linux无法运行,com.aspose 生成pdf在linux生成PDF乱码解决(window环境正常)...

    linux 环境下日志查看在GBK环境下,中文正常显示,web应用通过浏览器看到的jsp均不乱码,只有aspose生成的pdf,查看时中文全部显示不出来,其解决方案如下: 1. 通过增加jdk的字体库 ...

  9. kendo-ui 导出PDF乱码解决

    在做项目的时候用到了封装的PDF导出方法,出现了乱码问题 解决方法是下载微软字体的雅黑msyh.ttf,然后覆盖下面两个文件,把名字改成这两个文件的名字,相当于两个文件实际都是msyh.ttf,名字不 ...

  10. aspose转pdf乱码

    一.描述 使用aspose-words-15.8.0.jar,aspose-cells-8.5.2.jar,aspose-slides-15.9.0.jar开发word转pdf:PC端本地测试没有问题 ...

最新文章

  1. 通过点击热区,有个href 跳到servlet,怎么把页面上的值传到servlet里面?
  2. 我在学习技术的过程遇到的不会的单词(不断完善)
  3. 【百度echarts】实现圆环进度条-代码示例代码demo
  4. python实现天气预报_python实现智能语音天气预报
  5. Atitit 持久化 之道 attilax 艾龙著 1. 第2章 Java对象持久化技术概述 2 1.1. 2.1 直接通过JDBC API来持久化实体域对象 2 1.2. 2.2 ORM简介 2
  6. LitePal 数据库使用方法(最新2.0LitePal数据库适用)
  7. CUDA各个版本下载网址
  8. 几个不知道算不算经典的游戏
  9. 小觅相机运行VINS-Fusion(二)——Camera-IMU参数标定
  10. recovery输出log+recovery模式关闭selinux
  11. windows底层编程基础
  12. 可以修饰的基团有:氨基类,NHBOC类,Fmoc类不等,DSPE-PEG7-Mal
  13. 银盒子智慧餐厅硬件尺寸规格推荐机型
  14. 科技论文中字母正斜体及大小写的规范写法
  15. 测试wince wifi漫游的方法(参考)
  16. 新浪微博模拟登陆并发文
  17. 华三交换机如何进入配置_H3C交换机如何配置登录用户名和密码
  18. 有关三年级计算机课的日记,有趣的一节课日记 三年级日记
  19. 什么是爬电距离?宽爬电距离光耦为什么越来越受大家青睐?
  20. 游戏服务器和网站,大型网络游戏和大型网站需要服务器的不同

热门文章

  1. java实现lbs_如何在 Java 中利用 redis 实现 LBS 服务
  2. c语言数组中找出相同的数,找出数组中重复的数字(c语言)
  3. c语言编程泰勒展开式计算,学习笔记:用c语言编写泰勒展开公式myexp()实现math.h.数学函数...
  4. 河南省软件测试竞赛证书,河南省大学生国家安全知识竞赛
  5. nas智能家居服务器,智能家居 | 群晖NAS,你的智能生活中心 Vol.1
  6. promise语法与用法、this指向和this指向修改
  7. 只有1kb的清理软件_1kb病毒专杀工具下载
  8. 神经元结构示意图讲解图,神经元的结构示意图
  9. JAVA Swing万年历
  10. idcnd传媒官方专业提供