UNPKG

@subframe7536/fonttools

Version:

[ESM only] fonttools for nodejs or web with vite plugin, powered by pyodide

52 lines (48 loc) 2.33 kB
import { P as PyodideInterface } from './pyodide.d-DZJVW4ke.js'; type LiteralOrString<T extends string> = T | (string & {}) type ScriptGenerator = (inputPath: string, outputPath: string) => string; /** * Generate a basic script for fonttools * * `font` is a `fontTools.ttLib.TTFont` object */ declare function generateBasicScript(script: string): ScriptGenerator; type Extension = { input?: LiteralOrString<'ttf' | 'otf' | 'woff' | 'woff2'>; output?: LiteralOrString<'ttf' | 'otf' | 'woff' | 'woff2'>; }; /** * Run a Python script in `pyodide` with input ttf and return processed ttf buffer * @param pyodide pyodide instance * @param inputBuffer original font buffer, common format is `Uint8Array` * @param script script string, `font` is `fonttools.ttLib.TTFont` variable * @param ext input / output font format. Default input is 'ttf', default output is same as input */ declare function handleFontBuffer(pyodide: PyodideInterface, inputBuffer: ArrayBuffer | ArrayBufferView, script: ScriptGenerator, ext?: Extension): Uint8Array; /** * Name Id for `name` table, see details in {@link https://learn.microsoft.com/en-us/typography/opentype/spec/name#name-ids SPEC} */ declare const NameId: { readonly Copyright: 0; readonly FamilyName: 1; readonly SubfamilyName: 2; readonly Identifier: 3; readonly FullName: 4; readonly Version: 5; readonly PostscriptName: 6; readonly Trademark: 7; readonly Manufacturer: 8; readonly Designer: 9; readonly Description: 10; readonly VenderURL: 11; readonly DesignerURL: 12; readonly License: 13; readonly LicenseURL: 14; readonly PreferredFamily: 16; readonly PreferredSubFamily: 17; }; /** * Script that contains utils that manipulate font's name */ declare const processNameUtilScript = "def set_font_name(font,name,id):\n font[\"name\"].setName(name,nameID=id,platformID=1,platEncID=0,langID=0x0)\n font[\"name\"].setName(name,nameID=id,platformID=3,platEncID=1,langID=0x409)\ndef get_font_name(font,id):\n return font[\"name\"].getName(nameID=id,platformID=3,platEncID=1,langID=0x409).__str__()\ndef del_font_name(font,id):\n font[\"name\"].removeNames(nameID=id)"; export { type Extension, NameId, type ScriptGenerator, generateBasicScript, handleFontBuffer, processNameUtilScript };