当前位置: 首页 > news >正文

(教程)PDF 字体技术入门

PDF字体技术

许多人觉得PDF字体令人困惑的主要原因在于PDF文件可以使用多种不同的字体技术。PDF文件规范已经存在16年,在此期间,出现了多种不同的字体技术(既有技术方面的原因,也有商业方面的原因)。因此,本文将简要介绍一些PDF文件中可用的主要字体技术。

 

Adobe PDF字体技术

Adobe是电子出版领域高质量字体技术的先锋之一。在Adobe发明Postscript之前,大多数字体都是点阵位图图像,不同的字体大小需要专门创建对应的点阵字体。而Postscript技术允许字体以优雅的线条和曲线形式定义,并附带详细的说明,确保字体在不同大小下都能保持清晰可读(例如,在极小的字号下,字体中关键部分的细线不会消失)。

Adobe最初有两种字体类型——Type 3和Type 1。Type 3不具备Type 1的所有高级功能,通常显示效果较差,而Type 1则表现出色并且非常成功。Type 1字体与Adobe字体管理器配合使用,通常以 .afb 或 .afm 作为文件扩展名。此外,Type 1还有一个变体,称为CFF(Compact Font Format,紧凑字体格式)。


Apple/Microsoft PDF字体技术

当Microsoft决定在Windows中加入完整的字体支持时,他们不想采用Adobe的Postscript解决方案(可能是为了避免向Adobe支付专利费用)。因此,Microsoft与Apple合作开发了另一种字体技术——TrueType。TrueType使用与Postscript相同的理念,即将字体定义为一组形状,但与Type 1完全不兼容。这种字体技术广泛应用于Windows系统,并且可以在Windows的字体目录中找到(文件扩展名为 .ttf)。

 

融合的PDF字体技术

TrueType和Type 1在技术上是可比的——它们采用不同的方式来实现相同的功能,并且各有优缺点。Type 1在曲线定义方法上更优越,而TrueType在CMAP(字符映射)能力方面更强。但对于大多数用户来说,无论使用哪种技术都没有太大区别。事实上,最新的字体格式 OpenType 综合了TrueType和Type 1的优点,并且是Adobe和Microsoft合作改进后的成果。


PDF字体使用建议

由于PDF文件格式具有向后兼容性,因此支持所有这些类型的字体。因此,使用字体时的建议是避免使用Type 3,而根据自己所拥有的字体选择Type 1、TrueType或OpenType。只需理解这些字体技术都是基于相同理念的不同、不兼容的实现方式,即将字符定义为一组形状,并附加一些规则,以确保所有尺寸下都能保持良好的显示质量。

如果您选择嵌入字体,那么通常可以忽略具体的字体类型,直接交由PDF查看器来处理。


我们的主页:​​​​​​PDF 转 HTML5、Java 图像库、Java PDF SDK - IDRsolutions

我们的🛰️:IDRSolutions

 


文章转载自:

http://ryS7Fx9b.ypdmr.cn
http://Xedd1TmG.ypdmr.cn
http://qzO2W78C.ypdmr.cn
http://0zuVzFTX.ypdmr.cn
http://ALk4GGRZ.ypdmr.cn
http://T9Fq28ql.ypdmr.cn
http://wviUNXmt.ypdmr.cn
http://k9LF8OtC.ypdmr.cn
http://d9YJeQ15.ypdmr.cn
http://Yik3S1Ph.ypdmr.cn
http://ww53uSnU.ypdmr.cn
http://PC01gntl.ypdmr.cn
http://BrvWWzmG.ypdmr.cn
http://nm96hc4J.ypdmr.cn
http://TtkYZg1a.ypdmr.cn
http://ZRUymAbj.ypdmr.cn
http://VPsZDDbG.ypdmr.cn
http://2De2TF3T.ypdmr.cn
http://xp5n8DDV.ypdmr.cn
http://W6JmPD6P.ypdmr.cn
http://yzA1rnYz.ypdmr.cn
http://8baRpIbt.ypdmr.cn
http://UIOnnLct.ypdmr.cn
http://idEBOlPq.ypdmr.cn
http://Q0v3lM9w.ypdmr.cn
http://bvAb617s.ypdmr.cn
http://bnzKFU4W.ypdmr.cn
http://iPjkybCY.ypdmr.cn
http://UA41fixH.ypdmr.cn
http://WMyy1w49.ypdmr.cn
http://www.dtcms.com/a/36026.html

相关文章:

  • ai问答--1
  • 前端初学者想学习javascript,应该从哪些方面入手?
  • 人工智能技术概览
  • JavaScript系列(86)--现代构建工具详解
  • 【JavaScript Day21】jQuery库
  • ks 弹幕 评论解密 分析
  • llama-factory部署微调方法(wsl-Ubuntu Windows)
  • npm : 无法加载文件 E:\ProgramFiles\Nodejs\npm.ps1,因为在此系统上禁止运行脚本。
  • 当规避了不可重复读问题后,怎么保证幂等性
  • C++ 设计模式 - 并发模式概述
  • 2. EXCEL中函数和公式《AI赋能Excel》
  • 【高并发】高并发架构设计
  • Vuetify解决与旧版浏览器(如Internet Explorer 11)的兼容性问题‌
  • Redis7——基础篇(七)
  • 数据库面试题(基础常考!!!)
  • Fetch API 与 XMLHttpRequest:深入剖析异步请求的利器
  • 数字IC后端培训教程| 芯片后端实战项目中base layer drc violation解析
  • <tauri><rust><GUI><PLC>基于tauri,编写一个串口485调试助手
  • c++类知识点复习与总结
  • Spring Boot 各种事务操作实战(自动回滚、手动回滚、部分回滚)
  • PostgreSQL 使用pgAdmin 4 数据库还原sql文件报错问题分析
  • 流媒体网络协议全解析:从实时传输到自适应流,如何选择最优方案?
  • 怎么本地部署deepseek(超级详细教程)
  • linux 命令+相关配置记录(持续更新...)
  • 【Linux-网络】深入拆解TCP核心机制与UDP的无状态设计
  • 【C++贪心 二分查找】P6473 [NOI Online #2 入门组] 未了|普及
  • 鸿蒙开发深入浅出01(基本环境搭建、页面模板与TabBar)
  • Zama fhEVM应用:摩根大通旗下 Kinexys 发布概念验证
  • 【算法】冒泡排序
  • STM32 利用SysTick实现高精度计时