]> git.kianting.info Git - anotherTypesetter/commitdiff
revert the modification for simplicity
authorTan Kian-ting <chenjt30@gmail.com>
Sun, 21 Apr 2024 17:44:02 +0000 (01:44 +0800)
committerTan Kian-ting <chenjt30@gmail.com>
Sun, 21 Apr 2024 17:44:02 +0000 (01:44 +0800)
README.md
src/index.ts

index 4412207580eab7f0a47c301905f06e8baff8a60c..f1691133bb78596afa969ed56cae70b0ff7b5fb2 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,6 +1,7 @@
 ## Just another interpretation of typesetting
 ## TODO
 **現在問題:需要遷移到PDFKit,以及使用標準的fontkit,避免ttc無法支援的問題。PDF-lib試過了,不能用。需要整理package-denendent**
+
  - [v] apply - 240403
  - [v] letrec - 240405
  - [v] car - 240403
index 0c9d535d2e419d30a2ebd2af34b65f01c41985bd..cfb1c1dc5c84703c344a2abaa56684fc50f1015f 100644 (file)
@@ -1,8 +1,6 @@
 import * as fs from 'fs';
-import { PDFDocument , RGB, rgb} from 'pdf-lib';
-import fontkit from 'pdf-fontkit'; // for pdflib usage
-import * as fontkitOrig from 'fontkit'; // for ttc converting to ttf
-import {memfs} from 'memfs';
+import { PDFDocument , RGB, rgb, StandardFonts} from 'pdf-lib';
+import fontkit from '@pdf-lib/fontkit';
 import { Token } from "typescript-parsec";
 import {
   buildLexer,
@@ -282,10 +280,7 @@ async function measureWidthPx(inputString: string, fontFamily : string, fontSize
       hb = hb(wsm.instance);
 
       let fontName =  spawnSync('fc-match', ['--format=%{file}', fontFamily]);
-      let fontPath = fontName.stdout.toString();
-      
-     
-
+      const fontPath = fontName.stdout.toString();
       let fontdata = fs.readFileSync(fontPath);
 
 
@@ -535,27 +530,9 @@ async function drawText(pageIndex : number,
 const fcMatch = await spawnSync('fc-match', ['--format=%{file}', fontFamily]);
 const path = fcMatch.stdout.toString();
  pdfDoc.registerFontkit(fontkit);
- let fontBytes;
- // workaround for ttc
- if (path.match(/[.]ttc$/)){
-  let tmpfs = memfs();
-  let psName =  await spawnSync('fc-match',
-                                ['--format=%{postscriptname}',
-                                fontFamily])
-                      .stdout.toString();
-  console.log("===", psName);
-
-  let buffer = await fs.readFileSync("/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc");
-  let coll = fontkit.create(buffer, "NotoSansCJKtc-Regular");
-  //let collection = await (<any>fontkitOrig.openSync(path, psName));
-  
-  fontBytes = coll;
-  // fs.writeFileSync("/tmp/a.ttf", fontBytes);
-}else{
- fontBytes = fs.readFileSync(path);
-}
+   const fontBytes = fs.readFileSync(path);
 
-  const customFont = await pdfDoc.embedFont((<any>fontBytes).stream.buffer, {subset:true});
+  const customFont = await pdfDoc.embedFont(fontBytes);
 
   const rgbColor = await hexColorToRGB(color);
 
@@ -1126,7 +1103,6 @@ async function evaluate(expr: string): Promise<string> {
 import readline = require("node:readline");
 import { exit } from "node:process";
 import { spawnSync } from 'child_process';
-import { match } from 'assert';
 
 const rl = readline.createInterface({
   input: process.stdin,