按特定字形划分字体子集

2023-12-19

我有一个 14MB 的 TTF,其中大部分是简体中文字符。

我想通过创建一个仅包含 HTML 页面中特定字符的子集来减小大小。

因此,理想情况下,我想向(Linux)程序传递一段文本,并让它根据包含的字符重新创建字体。

E.g.

 ./magic-font-squisher input.tff "ABC123水小长"

or

 ./magic-font-squisher input.tff /path/to/test.html

新字体将仅包含这 9 个字符。


你可以这样做脚本 FontForge http://fontforge.org/scripting.html。这是可行的,尽管它可能会变得更聪明或包含在包含脚本中。

#!/usr/bin/env fontforge
Open($1); # first param
SelectAll();
SelectFewer(0u41, 0u43, 0u31, 0u33); # a range
SelectFewer(0u6c34); # or a single codepoint
SelectFewer(0u5c0f);
SelectFewer(0u957f);
DetachAndRemoveGlyphs();
Save($2); # second param
Quit(0);

我必须定义FONTFORGE_LANGUAGE在运行之前:

FONTFORGE_LANGUAGE=ff ./squish source.ttf squished.ttf
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

按特定字形划分字体子集 的相关文章

随机推荐

  • R - 使用 DT 按行格式化

    我有一个数据表 我想在闪亮的应用程序中显示 并按行显示不同的数字格式 我发现用户 NicE 之前提供了一个解决方案 该解决方案在所有列和行都是数字时有效 如下所示 R Shiny DataTables 不按列而是按行格式化数字 https
  • 在相同表名的插入查询中使用选择查询

    是否可以在 插入 查询中使用 选择 查询 但条件是我想对 选择 和 插入 查询使用相同的表名 例如mysql gt insert into sample elements name position ownerel values Names
  • 返回 Oracle 引用游标并附加多个结果

    我有这个问题 希望有人知道答案 我有一个 Oracle 存储过程 它接受客户 ID 并在 ref cursor 中返回所有客户的订单 过于简单化 这就是我所拥有的 Orders orderId siteID Customers siteID
  • 查找 Eclipse 项目中的错误数量

    如何以编程方式查找 Eclipse 项目中的错误数量 以红色标记 主要有两个步骤 您需要访问 Eclipse API 为 Eclipse 编写自己的插件或使用脚本插件 例如时髦的猴子 http groovy codehaus org Gro
  • 在 VIM 中重新打开上次会话缓冲区的替代方案?

    I know mksession 我也用它 但有时 它太多了 它保存了太多状态 这是一个问题 例如 当你更新一些插件 并且想要关闭 打开 VIM 以在新状态下启动它时 除非你只想保留当前打开文件的状态 有时什么 mksession保存与新更
  • 默认的 iPhone 相机应用程序如何能够如此快速地保存照片?

    到目前为止 我已经成功地为 iPhone 创建了一个应用程序 它可以拍摄多张图像 每张图像之间的间隔约为 3 秒 我正在一个单独的线程中异步处理每个图像 一切都很好 直到将图像保存到 iPhone 磁盘上 然后大约需要 12 秒才能使用 J
  • JavaScript 中变量的作用域是什么?

    javascript中变量的作用域是什么 它们在函数内部和外部具有相同的作用域吗 或者说这有什么关系吗 另外 如果全局定义变量 它们存储在哪里 TLDR JavaScript 具有词法 也称为静态 作用域和闭包 这意味着您可以通过查看源代码
  • WMQ Pub/Sub 主题到队列桥

    在其他队列管理器中 可以在队列和主题之间建立桥梁 以便发布者和订阅者不需要知道他们正在使用主题 示例中TIBCO EMS http www tibco com products soa messaging enterprise mesage
  • 如何设置每两周本地通知一次

    如何每两周触发一次本地通知 我所做的是 UILocalNotification localNotification UILocalNotification new localNotification repeatInterval 14 lo
  • 如何查看 Angular 2 应用程序的页面源

    我有网络应用程序 每当我使用浏览器查看页面源查看页面源时 我只能看到页面源中的index html内容 因为我能够看到检查元素中的所有html代码 但不能看到页面中的所有html代码来源 有谁如何查看页面源代码吗 下面是server ts
  • 使用 gopacket 发送 UDP 数据包到 127.0.0.1

    我正在尝试使用 gopacket 将 UDP 数据包发送到 127 0 0 1 这是我的代码 package main import fmt net github com google gopacket github com google
  • 防止 HTML 源代码窃取 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 最近我为一个人做了一些网页设计工作 我继续向他展示了我的开发服务器上他的新网站的链接 向他展示了进展 临近完成时 他断绝了与我的所有联
  • 使用 Java 查找并替换文本文件中的单词

    我正在尝试使用 Java 查找并替换文本文件中的某些单词 我的代码在一定程度上有效 但是我得到的输出是错误的 我需要用用户输入替换文本文件中一行中的多个单词 但是 当我运行代码时 该行会为我尝试替换的每个单词复制一次 例如 如果我想替换以下
  • Java Web 服务向 .net 客户端返回 null 对象

    任何人都可以弄清楚我的问题是 我正在从 Net 客户端调用 Java Web 服务 Axis 1 4 的 webmethod 该方法返回一个 Map 对象 如果我从 Axis 客户端调用它 效果很好 但在我的 C 代码中 它始终为 null
  • 如何在javascript中检查图像是否是损坏的图像

    我从 Twitter 获取个人资料图像并将图像 URL 存储在我的数据库中 某些网址给出了损坏的图像 其中网址以图像扩展名结尾 任何人都可以帮助我检查图像是有效图像还是损坏的图像 如果存在损坏的图像 我需要显示默认图像 var image
  • NSSearchPathForDirectoriesInDomains 和持久数据的问题

    根据建议 我们使用以下代码来检索用户文档的路径 NSArray paths NSSearchPathForDirectoriesInDomains NSDocumentDirectory NSUserDomainMask YES NSStr
  • 如何在页面对象模式中使用 WebDriver / Selenium 2 加载组件?

    我很难适应 WebDriver 页面对象模式 请分享您使用页面对象模式和可加载组件的经验和方法 由于 PageObject 通常代表一个组件或一项功能 因此我首先想到应该使用它在 load 中实际执行一些操作 并查看它是否执行 isLoad
  • Java:通用函数X->Y接口

    我需要一个像这样的界面 interface Function
  • 如何在不打开摄像机的情况下录制视频?

    如何在不打开任何相机的情况下录制视频 我的要求是 当一个人遇到问题时 他的视频会被记录下来 但不是通过打开摄像头 它应该在后台工作 Thanks Use AV基础框架 http developer apple com library ios
  • 按特定字形划分字体子集

    我有一个 14MB 的 TTF 其中大部分是简体中文字符 我想通过创建一个仅包含 HTML 页面中特定字符的子集来减小大小 因此 理想情况下 我想向 Linux 程序传递一段文本 并让它根据包含的字符重新创建字体 E g magic fon