PDF 字体嵌入

注:本文为 “PDF 字体嵌入” 相关合辑。
图片清晰度受引文原图所限。
略作重排,未整理去重。
如有内容异常,请看原文。


解决 PDF 内嵌字体问题

于 2022-03-09 17:36:22 修改

外文会议、期刊投稿一般要求 PDF 中的字体应当是嵌入状态,避免其他电脑缺失字体导致 PDF 文字无法正常显示。

1. 检查字体是否嵌入

可以使用 Adobe Reader 或 Acrobat 等 PDF 阅读器打开文件,查看 属性 -> 字体,确认是否所有字体均已嵌入。

检查字体嵌入

如果字体未嵌入,可以使用 Adobe Acrobat 的“印前检查”功能进行 PDF 分析。该功能可在 工具 -> 印刷制作优化 PDF 中找到。

印前检查功能

使用此方法的好处是可以发现 PDF 中哪些位置的字体未嵌入。双击错误信息可以定位问题位置(虚线蓝框处)。

定位问题位置

在线工具检查(学术投稿专用)

IEEE 针对学术论文投稿提供专属 PDF 格式校验工具,支持字体嵌入状态、格式合规性等多维度检测:
访问链接:IEEE PDF Checker

2. PDF 嵌入字体

网上大部分方法是使用 Adobe Acrobat 的 Adobe PDF 虚拟打印机,将原文档打印一遍并在这个过程中设置字体嵌入。但这种方法会改变原文档的一些特性,如交叉引用、跳转显示等,且打印输出的纸张大小会调整为 A4 或其他标准纸张,无法保持原 PDF 大小。

使用 Adobe Acrobat 的“印前检查”功能进行 PDF 修正。该功能可在 工具 -> 印刷制作优化 PDF 中找到。

印前检查功能

修正后的 PDF 将嵌入全部字体。

已嵌入字体

值得一提的是,很难找到不使用 Adobe 编辑器嵌入 PDF 字体的方法。

说明

LaTeX 排版论文的字体嵌入注意事项

  1. 图片格式选择:插入的图片优先使用 EPS 矢量图格式,此类格式可保证缩放后清晰度,且需提前确认图片本身已嵌入字体;
  2. 编译方式选择:英文论文推荐使用 pdfLaTeX 编译,该方式会自动嵌入所有文字字体,采用 TeX 默认字体,兼容性更强。

提交论文时出现 PDF 没有嵌入某些字体的情况

York Sun 发布于 2021-05-07 20:25

在论文提交过程中,尤其是临近截止日期时,许多硕士及博士研究生会遇到论文无法成功提交的问题,提示“字体未包含”。通常,正文部分由 LaTeX 生成,一般不会出现字体问题,问题往往出在文中插入的图片上。

问题原因

为了获得高质量的图片,我们常常将 Visio 绘图以及 MATLAB 生成的图像另存为 PDF 格式。在这个过程中,由于操作不当或不熟悉软件,可能会使用某些特定字体(例如 Times New Roman),从而导致最终的字体嵌入问题。

解决方法

检查字体嵌入情况

实际上,无需等到提交论文时才发现字体嵌入问题。可以提前使用 Acrobat Pro 检查文档的字体嵌入情况。打开图片 PDF 文件,进入 文件 -> 属性

检查字体

在新打开的对话框中查看字体,如下图所示:

未嵌入字体

上图展示了一个未嵌入字体的情况。如果字体已嵌入,则显示如下:

已嵌入字体

字体嵌入操作步骤

如果发现字体未嵌入,可以按照以下步骤解决:进入 编辑 -> 首选项

首选项

点击“首选项”,进入如下菜单:

首选项菜单

选择 “转换为 PDF” -> “PostScript/EPS”,然后点击 “编辑设置”

编辑设置

点击“编辑”,进入如下菜单:

编辑菜单

在左侧选择“字体”,在右侧选择 “嵌入所有字体”,其他选项均不勾选,然后点击 “另存为”

另存为

取一个名字,点击“保存”。至此,设置过程完成。

转换 PDF 文件

接下来,开始转换 PDF:进入 文件 -> 打印

打印

点击“打印”,进入如下界面:

打印界面

理论上,此时已经可以完成字体嵌入。但有时打印输出的文件可能会出现色彩失真,例如黑色透着灰色。可以通过以下操作解决:点击 “高级” -> “高级打印设置” -> “颜色处理”,选择 “与源一致”

颜色处理

这样,打印出来的图片颜色会更加正常。

comment

流浪家
另一种方法是使用 Acrobat(付费软件)打开 PDF 文件,然后另存为 PDF/A 格式即可。
2023-05-01


解决 PDF 内嵌字体问题

December 发布于 2023-03-21 20:25・湖北

如果发表的论文中使用了非常用字体,其他人在电脑上打开时可能会出现乱码,此时需要嵌入 PDF 字体。

命令行检查(Linux/macOS 环境)

pdffonts 命令行工具最初来自于 Xpdf,现在是 poppler-utils 包的一部分,在大多数 Linux 发行版中都是可用的。
若需兼容中文,可使用 xeLaTeX 编译,但需通过 pdffonts 命令验证字体嵌入状态,避免未嵌入导致的显示异常。

通过 pdffonts 命令可在终端快速获取字体嵌入详情,适用于批量检查高效操作。

具体如下:

  1. 打开终端,输入命令格式:pdffonts 文档路径/文件名.pdf
  2. 输出结果中关键列含义:
    • emb:字体嵌入状态(yes 为已嵌入,no 为未嵌入);
    • sub:是否子集化嵌入(仅嵌入文档中实际使用的字符);
    • uni:是否支持 Unicode 编码;

例如,以下 PDF 文档中许多字体未嵌入,导致在其他电脑上无法显示。

# dingbo @ AEP in ~/Desktop/ICCD2022-camera-ready on git:master x [16:31:52]
$ pdffonts ./conference_101719.pdf
name                                 type              encoding         emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
XFEVKF+NimbusRomNo9L-Regu            Type 1            Custom           yes yes no       5  0
MFUTSE+NimbusRomNo9L-ReguItal        Type 1            Custom           yes yes no       6  0
GSKNIF+CMSY10                        Type 1            Builtin          yes yes no       7  0
PUVVNX+NimbusRomNo9L-MediItal        Type 1            Custom           yes yes no       8  0
YFMEUT+NimbusRomNo9L-Medi            Type 1            Custom           yes yes no       9  0
GLOFDO+TimesNewRomanPS-BoldMT        TrueType          WinAnsi          yes yes no      18  0
GLOFEA+TimesNewRomanPS-BoldItalicMT  TrueType          WinAnsi          yes yes no      19  0
GLOFGB+TimesNewRomanPSMT             CID TrueType      Identity-H       yes yes yes     20  0
GLOFIC+Calibri                       TrueType          WinAnsi          yes yes no      21  0
LPDOLN+TimesNewRomanPSMT             TrueType          WinAnsi          yes yes no      69  0
LPDOLP+TimesNewRomanPS-BoldItalicMT  TrueType          WinAnsi          yes yes no      70  0
LPDPAA+TimesNewRomanPS-BoldMT        TrueType          WinAnsi          yes yes no      71  0
TimesNewRomanPSMT                    TrueType          WinAnsi          no  no  no     137  0
TimesNewRomanPSMT                    TrueType          WinAnsi          no  no  no     138  0
TimesNewRomanPSMT                    TrueType          WinAnsi          no  no  no     139  0
TimesNewRomanPSMT                    TrueType          WinAnsi          no  no  no     140  0
TimesNewRomanPSMT                    TrueType          WinAnsi          no  no  no     151  0
TimesNewRomanPSMT                    TrueType          WinAnsi          no  no  no     152  0
TimesNewRomanPSMT                    TrueType          WinAnsi          no  no  no     153  0
TimesNewRomanPSMT                    TrueType          WinAnsi          no  no  no     162  0
TimesNewRomanPSMT                    TrueType          WinAnsi          no  no  no     163  0
TimesNewRomanPSMT                    TrueType          WinAnsi          no  no  no     164  0
TimesNewRomanPSMT                    TrueType          WinAnsi          no  no  no     198  0
TimesNewRomanPSMT                    TrueType          WinAnsi          no  no  no     199  0
TimesNewRomanPSMT                    TrueType          WinAnsi          no  no  no     200  0
TimesNewRomanPSMT                    TrueType          WinAnsi          no  no  no     233  0
TimesNewRomanPSMT                    TrueType          WinAnsi          no  no  no     238  0
TimesNewRomanPSMT                    TrueType          WinAnsi          no  no  no     239  0
TimesNewRomanPSMT                    TrueType          WinAnsi          no  no  no     240  0
TimesNewRomanPSMT                    TrueType          WinAnsi          no  no  no     241  0

解决方法

  1. 打开 PDF 文件,点击 文件 -> 打印,选择 Adobe PDF -> 属性 -> 默认设置(标准) -> 编辑 -> 字体
  2. 将“字体来源”中的所有字体添加到“总是嵌入”框中。
  3. 点击另存为一个配置文件(名称自拟,按默认路径保存),保存后退出。
  4. 再次打印,选择之前保存的配置文件,点击打印即可生成嵌入所有字体的 PDF 文件。

效果检查

# dingbo @ AEP in ~/Desktop/ICCD2022-camera-ready on git:master x [16:31:39]
$ pdffonts ./conference_embedded.pdf
name                                 type              encoding         emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
KKKDPJ+NimbusRomNo9L-Regu            Type 1C           Custom           yes yes yes 223 0
KKKDPK+NimbusRomNo9L-ReguItal        Type 1C           Custom           yes yes yes 226 0
KKKDPL+CMSY10                        Type 1C           Custom           yes yes yes 229 0
KKKDPM+NimbusRomNo9L-MediItal        Type 1C           Custom           yes yes yes 232 0
KKKDPN+NimbusRomNo9L-Medi            Type 1C           Custom           yes yes yes 235 0
KKKEOE+TimesNewRomanPS-BoldItalicMT  TrueType          WinAnsi          yes yes no     179 0
KKKFHB+TimesNewRomanPS-BoldMT        TrueType          WinAnsi          yes yes no     180 0
KKKEHC+TimesNewRomanPS-BoldMT        TrueType          WinAnsi          yes yes no     182 0
KKKEHD+TimesNewRomanPS-BoldItalicMT  TrueType          WinAnsi          yes yes no     181 0
KKKEFO+TimesNewRomanPSMT             CID TrueType      Identity-H       yes yes no     183 0
KKKENC+Calibri                       TrueType          WinAnsi          yes yes no     184 0
KKKEOD+TimesNewRomanPSMT             TrueType          WinAnsi          yes yes no     185 0
KKKGDP+TimesNewRomanPSMT             TrueType          WinAnsi          yes yes no     188 0

comment

Tinsley

  1. 打开电脑设置 -> 设备 -> 打印机和扫描仪
  2. 找到 Adobe PDF,点击 管理 -> 打印首选项
  3. 去掉“仅依靠系统字体;不使用文档字体”前面的勾选,点击 应用
    在这里插入图片描述
    2023-11-23 · 湖北

via:

### 如何在生成的PDF文件中正确嵌入字体 为了确保生成的PDF文件能够正确嵌入字体,可以采用多种方法来实现这一目标。以下是几种常见的解决方案及其具体操作方式: #### 方法一:通过LaTeX工具链调整编译选项 当使用LaTeX生成PDF时,可以通过修改编译参数或模板设置来确保字体被正确嵌入。例如,在使用IEEE模板的情况下,问题通常来源于插入的图片而非正文部分[^5]。因此,需要特别关注EPS或PDF格式的插图,并确认其中的文字字体已被正确处理。 对于含有文字的插图,建议重新导出这些图像并强制嵌入其内部使用的字体。这一步骤可通过图形编辑软件完成,或者利用专门的转换工具将原始图像转为带有嵌入字体的新版本。 #### 方法二:借助第三方软件(如CutePDF Writer) 另一种有效的方法是使用外部应用程序辅助创建最终的PDF文档。例如,先用标准流程生成初步的PDF文件,随后加载至支持高级功能的程序——像CutePDF Writer——之中进一步加工[^1]。在此过程中可以选择特定选项以保证所有必要的字符集都被打包进输出成果里去。 此外还可以考虑其他类似的桌面应用产品,只要它们提供了充分灵活的操作界面允许自定义哪些资源应该随同主体一起存储下来就行。 #### 方法三:运用编程库自动处理(如iText) 针对那些希望通过脚本自动化整个工作流的需求者来说,则可选用一些强大的开源项目来进行定制化开发。Java开发者常会选择基于Apache License协议发布的 iText 库作为首选方案之一[^3]。该类框架不仅具备丰富的API接口用于构建复杂布局结构,同时也包含了关于管理字体方面的详尽指南说明如何恰当地将其引入到新建页面当中去。 需要注意的是,在实际编码之前应当详细了解目标平台环境下的许可条款以及可能存在的兼容性障碍等问题以免日后遭遇不必要的麻烦。 #### 方法四:依赖Adobe Acrobat Pro手动修正现有文档 最后一种途径适用于已经存在但尚未完全达到预期效果的作品修复场景下。安装有Acrobat Professional版别的用户可以直接开启待优化的目标档案并通过内置菜单项逐步引导直至达成目的为止[^4]。此过程大致包括以下几个方面: - **检查当前状态**:查看现有的字体列表判断是否存在遗漏情况; - **指定新策略**:决定是否要替换缺失项或是单纯增加额外副本; - **执行更新动作**:按照指示提交更改请求等待系统反馈成功与否的信息; --- ```python from PyPDF2 import PdfReader, PdfWriter def embed_fonts(input_path, output_path): reader = PdfReader(input_path) writer = PdfWriter() for page_num in range(len(reader.pages)): page = reader.pages[page_num] writer.add_page(page) with open(output_path, 'wb') as f: writer.write(f) embed_fonts('input.pdf', 'output_with_embedded_fonts.pdf') ``` 上述Python代码片段展示了如何利用PyPDF2库尝试再次写入一份新的PDF实例从而间接促使某些情况下原本丢失的数据得以恢复再现出来。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值