Git Product home page Git Product logo

fonts's People

Contributors

hsiaosiyuan0 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

fonts's Issues

font slice

font cmap must contain a subtable with platformID 0(unicode)

License?

Could you please provide a proper LICENSE file?

Are there any plan to support Full OpenType?

Hi Hsiaosiyuan.
I am wondering that whether this project has further plan to support the entire OpenType standard, including:

  • GSUB and GPOS
  • OTVar (fvar, gvar, etc.)
  • CFF and CFF2

重复使用的同一个srcFont 制作小字体,会出错。

function makeGenerateStr(length) {
  var result           = '';
  var characters       = '二画二十丁厂七卜人入八九几儿了力乃刀又三画三于干亏士工土才寸下大丈与万上小口巾山千乞川亿个勺久凡及夕丸么广亡门义之尸弓己已子卫也女飞刃习叉马乡四画丰王井开夫天无元专云扎艺木五支厅不太犬区历尤友匹车巨牙屯比互切瓦止少日中冈贝内水见午牛手毛气升长仁什片仆化仇币仍仅斤爪反介父从今凶分乏公仓月氏勿欠风丹匀乌凤勾文六方火为斗忆订计户认心尺引丑巴孔队办以允予劝双书幻五画玉刊示末未击打巧正扑扒功扔去甘世古节本术可丙左厉右石布龙平灭轧东卡北占业旧帅归且旦目叶甲申叮电号田由史只央兄叼叫另叨叹四生失禾丘付仗代仙们仪白仔他斥瓜乎丛令用甩印乐句匆册犯外处冬鸟务包饥主市立闪兰半汁汇头汉宁穴它讨写让礼训必议讯记永司尼民出辽奶奴加召皮边发孕圣对台矛纠母幼丝六画式刑动扛寺吉扣考托老执巩圾扩扫地扬场耳共芒亚芝朽朴机权过臣再协西压厌在有百存而页匠夸夺灰达列死成夹轨邪划迈毕至此贞师尘尖劣光当早吐吓虫曲团同吊吃因吸吗屿帆岁回岂刚则肉网年朱先丢舌竹迁乔伟传乒乓休伍伏优伐延件任伤价份华仰仿伙伪自血向似后行舟全会杀合兆企众爷伞创肌朵杂危旬旨负各名多争色壮冲冰庄庆亦刘齐交次衣产决充妄闭问闯羊并关米灯州汗污江池汤忙兴宇守宅字安讲军许论农讽设访寻那迅尽导异孙阵阳收阶阴防奸如妇好她妈戏羽观欢买红纤级约纪驰巡七画寿弄麦形进戒吞远违运扶抚坛技坏扰拒找批扯址走抄坝贡攻赤折抓扮抢孝均抛投坟抗坑坊抖护壳志扭块声把报却劫芽花芹芬苍芳严芦劳克苏杆杠杜材村杏极李杨求更束豆两丽医辰励否还歼来连步坚旱盯呈时吴助县里呆园旷围呀吨足邮男困吵串员听吩吹呜吧吼别岗帐财针钉告我乱利秃秀私每兵估体何但伸作伯伶佣低你住位伴身皂佛近彻役返余希坐谷妥含邻岔肝肚肠龟免狂犹角删条卵岛啦啦迎饭饮系言冻状亩况床库疗应冷这序辛弃冶忘闲间闷判灶灿弟汪沙汽沃泛沟没沈沉怀忧快完宋宏牢究穷灾良证启评补初社识诉诊词译君灵即层尿尾迟局222改张忌际陆阿陈阻附妙妖妨努忍劲鸡驱纯纱纳纲驳纵纷纸纹纺驴纽131经济负担是;了哈';
  var charactersLength = characters.length;
  for ( var i = 0; i < length; i++ ) {
     result += characters.charAt(Math.floor(Math.random() * charactersLength));
  }
  return result;
}

let buf = fs.readFileSync(path.resolve(__dirname, './FZHCJW.ttf'));
let srcFont = new fontKit.Font(buf) // 把这句移入函数,问题就不会发生。 

function testStrGenerateByTool(str) {
  console.log(str, 'creating')
  srcFont.satisfy()
  let mini = new fontKit.Minifier(srcFont)
  const newFont = mini.with(str);

  const wb = new fontKit.BufferWriter();
  newFont.write2(wb);

  fs.writeFileSync('./file.ttf', wb.buffer);

  console.log(str, 'created')

  // read font
  buf = fs.readFileSync('./file.ttf');
  const generatedFont = new fontKit.Font(buf);
  generatedFont.satisfy();

  console.log(str, 'formart ok')
}


let COUNT = 1000
let STR_LENGTH = 5

for (let i=0; i<COUNT; i++) {
  let str = makeGenerateStr(STR_LENGTH);
  testStrGenerate(str)
}

错误:

 node ./test/index.js

过网诊四勿 creating
过网诊四勿 created
过网诊四勿 formart ok
层寸攻夸抓 creating
层寸攻夸抓 created
层寸攻夸抓 formart ok
华欢扶片丰 creating
华欢扶片丰 created
华欢扶片丰 formart ok
删状专尺土 creating
删状专尺土 created
删状专尺土 formart ok
正纪羽场队 creating
正纪羽场队 created
正纪羽场队 formart ok
作世世奴妥 creating
作世世奴妥 created
/Users/leon/meipian/mini-fontmin/node_modules/font-toolkit/dist/src/table/loca.js:24
            throw new Error("unreachable");
            ^

Error: unreachable
    at LocaTable.satisfy (/Users/leon/meipian/mini-fontmin/node_modules/font-toolkit/dist/src/table/loca.js:24:19)
    at Font.readTable (/Users/leon/meipian/mini-fontmin/node_modules/font-toolkit/dist/src/sfnt.js:180:19)
    at tableRecords.forEach.r (/Users/leon/meipian/mini-fontmin/node_modules/font-toolkit/dist/src/sfnt.js:153:45)
    at Array.forEach (<anonymous>)
    at Font.readTables (/Users/leon/meipian/mini-fontmin/node_modules/font-toolkit/dist/src/sfnt.js:153:27)
    at Font.satisfy (/Users/leon/meipian/mini-fontmin/node_modules/font-toolkit/dist/src/sfnt.js:50:14)
    at testStrGenerateByTool (/Users/leon/meipian/mini-fontmin/test/index.js:48:17)
    at Object.<anonymous> (/Users/leon/meipian/mini-fontmin/test/index.js:72:3)
    at Module._compile (internal/modules/cjs/loader.js:816:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:827:10)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.