adobe reader打印含有非内嵌并且本机上也不存在的字体的pdf时乱码

好好單调 2015-01-06 10:12:00
问题是这样的:
我现在有个一个含有内嵌字体的Pdf文件。通过adobe reader打印时,选择的打印机为虚拟打印机(如SmartPrinter这里基于windows UniDrv实现的虚拟打印机),打印出来的中间文件EMF中包含了EXTCREATEFONTINDIRECTW记录。这个记录是调用了API CreateFontIndirect产生的。可见adobe reader在渲染出这个EMF的时候产生了中间字体,而一旦关闭这个adobe reader进程,则会删除掉临时字体。最后再去绘制这个EMF就乱码了。

说的比较乱,上面是我的分析过程。使用foxit reader就不会乱码,因为生成的emf中没有EXTCREATEFONTINDIRECTW记录,也就没有产生临时字体。
所以现在我的问题是: adobe reader为什么和foxit reader打印同一个pdf使用的机制不一样,如何让adobe reader打印时也和foxit reader一样不产生中间字体呢?
这个问题困扰了我很久了,求帮忙解答。谢谢了。
...全文
567 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
好好單调 2015-01-07
  • 打赏
  • 举报
回复
引用 1 楼 yshuise 的回复:
adobe的字体比foxit好,不信你放大字体,就可以比较出来。 foxit用的是开源字体库。
额。这个跟它生成中间字体有什么关系吗?
引用 2 楼 zhao4zhong1 的回复:
foxit提供二次开发。
foxit是正常的,adobe生成了临时字体,所以才有现在的问题呀。
赵4老师 2015-01-06
  • 打赏
  • 举报
回复
foxit提供二次开发。
yshuise 2015-01-06
  • 打赏
  • 举报
回复
adobe的字体比foxit好,不信你放大字体,就可以比较出来。 foxit用的是开源字体库。

64,282

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧