@subframe7536/fonttools
Version:
[ESM only] fonttools for nodejs or web with vite plugin, powered by pyodide
52 lines (48 loc) • 2.33 kB
TypeScript
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 };