用 Acrobat 修复因缺少内嵌字体而乱码的 PDF 文件
前言
最近在阅读一本电子书的时候发现 PDF 文件中只要是英文、数字、空格的位置都是乱码,影响阅读。这应该是 PDF 文档没有将所需要的所有字体内嵌到文档中,缺少字体导致的。比如某东的电子发票在不同的 PDF 阅读软件上打开会出现不同的字体。
这里分享一下修复文档的整个过程。
需要软件
- Adobe Acrobat Pro DC 2020
- 文件中尚未内嵌的字体(方正EU系列)
检查字体缺失
PDF 文档出现乱码,首先要检查是否是缺失字体。用 Acrobat 打开 PDF 文件,菜单栏选择“文件”、“属性”、“字体”选项卡,可以看到该 PDF 文档中使用的所有字体。
已内嵌文档的字体会显示“(已嵌入)”,未嵌入的字体,如图中的EU-BX.ttf
字体是方正的西文“白斜”字体,由于不同的 PDF 阅读器遇到字体缺失后会选择一个缺省字体替代,而不同字体的字符集不同,所以会出现乱码的情况。
缺失字体修复
首先找到缺失的字体文件,安装到电脑中。一般来说,安装好缺失字体后再用 PDF 阅读器查看文档就不会乱码,文档恢复正常。但是 PDF 文件是跨平台的便携式文档,如果要在其它设备上不出问题还是要将所需的字体全部嵌入。
回到 Acrobat 的“主页”,添加“印刷制作”工具。
打开要修复的文件,在右侧工具栏选择“印刷制作”、“印前检查”。
“印前检查”选择“PDF 修正”、“嵌入缺失的字体”,然后点击“分析和修复”,保存修复后的文件,稍等一会。
经过一小段时间的修复,如果最终的结果是“没有找到问题”说明文件已成功修复。
打开修复后的文件,查看文档属性,缺失的字体已经嵌入,可以正常显示。
修复前后的扉页
吐槽
PDF 文件格式相当灵活,各种编译器、阅读器在实现上没有统一的标准,所以导致 PDF 文件容易出现各种奇奇怪怪的问题。比如某文档扫描 App 生成的 PDF 无法用 Python 的 PyPDF 编辑,报错原因是页码错误。经过我测试发现是 PDF 不符合标准,将文件转换成 PDF/A 标准的格式就恢复正常了。
参考资料
- 修复pdf字体嵌入问题_NEWPLAN的专栏-CSDN博客_解决pdf字体嵌入
用 Acrobat 修复因缺少内嵌字体而乱码的 PDF 文件相关推荐
- php tcpdf 嵌入字体,TCPDF如何设置中文字体为内嵌字体?
TCPDF生成pdf文件,用$pdf->SetFont('stsongstdlight', '', 14);设置字体为宋体,生成的PDF是非内嵌字体的,如果阅读者的电脑没有安装photoshop ...
- java生成pdf字体居中,Java生成pdf文件,解决中文乱码问题
如下代码使用itext生成pdf文件,通过设置中文字体避免乱码. /** * AsianTest.java */ import java.io.FileOutputStream; import jav ...
- wxpython 内嵌字体_【wxPython】wx.font类字体
构造函数形式为:wx.Font(pointSize,family,style,weight,underline,faceName,encoding) pointSize pointSize是字体的以磅 ...
- 解决微信内嵌浏览器无法响应上传文件(图片)的思路(2种办法)
本文转载自: https://www.cnblogs.com/cai-rd/p/3930227.html 作者:cai-rd 转载请注明该声明. 进园一年多来,第一次写博客,好激动.原因主要是自己平时 ...
- 使内嵌式jetty服务器支持jsp
1.jetty是什么 jetty是一个轻量级的web服务器,类似tomcat,但用起来比tomcat灵活,尤其是支持内嵌式使用.所谓内嵌式即以java语句的形式启动jetty,这样我们可以无需部署和启 ...
- C语言内嵌Python import时提示undefined symbol错误及解决
项目切gcc 4.6版本时,C语言内嵌了python,运行bin文件import时出现importError错误,提示python-2.7.11/lib/python2.7/lib-dynload/_ ...
- LabVIEW如何打开Acrobat PDF文件
LabVIEW如何打开Acrobat PDF文件 如何能够在LabVIEW的VI中打开一个Acrobat Reader的文档? 解答: 在LabVIEW中打开一个PDF文件最大的困难就是寻找一种可靠的 ...
- IEEE论文Word 转 PDF文件的字体嵌入(embedded font)和pdf 文档去除链接
word 2010 选择 文件-> 发布pdf 确认PDF是否字体都嵌入: pdf文件双击文件->属性->字体,查看是否都嵌入,如图: PDF文档删除链接: "高级---文 ...
- PDF文件【由Latex、CTex或MS Word等生成】嵌入所有字体的快速解决方法
原文地址:http://software.intel.com/zh-cn/blogs/2011/09/03/pdflatexctexms-word/?cid=sw:prccsdn1974 作者: Ji ...
最新文章
- 【转载】浏览器事件循环机制(event loop)
- CentOS7下配置bacula-web
- 报错解决:error: this statement may fall through [-Werror=implicit-fallthrough=]
- 转载 为什么要有ibgp
- OpenCV3实现人脸识别(一)——基于OpenCV3级联分类器实现人脸检测与眼睛检测
- 构建DRM系统的重要基石——EME、CDM、AES、CENC和密钥
- Android 功耗(14)----Android功耗 问题debug处理
- Java JDBC DriverManager类
- python协程--yield和yield from
- 对进程、线程和应用程序域的理解
- freeldr 如何调用_BootMain的
- 二维码生成(如何实现扫描二维码,实现网址自动跳转?):扫码直接进入网页,直接进入网址页面
- Java 开发必看的 5个 Github 开源项目
- 最速降线求解的数学模型
- 图灵 | 计算机器与智能
- 注册表的使用-入门篇
- Python 用户输入和循环的学习
- 小 tips:删除word表格下面多余的空白页
- 【恩墨学院】为什么用尽了办法你的系统性能还是不见改善?
- PHP+MySQL实现学生信息管理系统登录功能(附带源码)
热门文章
- openCV-python实现幻灯片渐变效果
- 编程入门c语言ppt,C语言入门经典-C语言编程.ppt
- 笔记本电脑电池充电技巧
- mysql人事管理系统源代码_java Swing mysql实现的人事管理系统项目源码附带视频指导教程...
- css实现单行、多行文本超出省略号(...)
- 超全面的JavaWeb笔记day22文件上传
- Excel 如何把一行变成对应的多行,或者多行变成对应的一行
- Python爬虫代理IP的使用
- java中的this.getclass和super.getClass(),以及继承的深入探究
- 在cesium中使用3D地形数据terrain builder的打开步骤