jpc_helper_font_width.js 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513
  1. /**
  2. * Created by Tony on 2019/12/12.
  3. */
  4. const fontWidthMap = {
  5. "宋体": {
  6. "宽": {
  7. "_6": 6,
  8. "_7": 7,
  9. "_8": 8,
  10. "_9": 9,
  11. "_10": 10,
  12. "_11": 11,
  13. "_12": 12,
  14. "_13": 13,
  15. "_14": 14,
  16. "_15": 15,
  17. "_16": 16,
  18. "_17": 17,
  19. "_18": 18,
  20. "_19": 19,
  21. "_20": 20,
  22. "_21": 21,
  23. "_22": 22,
  24. "_23": 23,
  25. "_24": 24,
  26. "_25": 25,
  27. "_26": 26,
  28. "_27": 27,
  29. "_28": 28,
  30. "_29": 29,
  31. "_30": 30,
  32. "_31": 31,
  33. "_32": 32,
  34. "_33": 33,
  35. "_34": 34,
  36. "_35": 35,
  37. "_36": 36,
  38. "_37": 37,
  39. "_38": 38,
  40. "_39": 39,
  41. "_40": 40,
  42. "_41": 41,
  43. "_42": 42,
  44. "_43": 43,
  45. "_44": 44,
  46. "_45": 45,
  47. "_46": 46,
  48. "_47": 47,
  49. "_48": 48,
  50. "_49": 49,
  51. "_50": 50,
  52. "_51": 51,
  53. "_52": 52,
  54. "_53": 53,
  55. "_54": 54,
  56. "_55": 55,
  57. "_56": 56,
  58. "_57": 57,
  59. "_58": 58,
  60. "_59": 59,
  61. "_60": 60,
  62. "_61": 61,
  63. "_62": 62,
  64. "_63": 63,
  65. "_64": 64
  66. },
  67. "窄": {
  68. "_6": 3,
  69. "_7": 3.5,
  70. "_8": 4,
  71. "_9": 4.5,
  72. "_10": 5,
  73. "_11": 5.5,
  74. "_12": 6,
  75. "_13": 6.5,
  76. "_14": 7,
  77. "_15": 7.5,
  78. "_16": 8,
  79. "_17": 8.5,
  80. "_18": 9,
  81. "_19": 9.5,
  82. "_20": 10,
  83. "_21": 10.5,
  84. "_22": 11,
  85. "_23": 11.5,
  86. "_24": 12,
  87. "_25": 12.5,
  88. "_26": 13,
  89. "_27": 13.5,
  90. "_28": 14,
  91. "_29": 14.5,
  92. "_30": 15,
  93. "_31": 15.5,
  94. "_32": 16,
  95. "_33": 16.5,
  96. "_34": 17,
  97. "_35": 17.5,
  98. "_36": 18,
  99. "_37": 18.5,
  100. "_38": 19,
  101. "_39": 19.5,
  102. "_40": 20,
  103. "_41": 20.5,
  104. "_42": 21,
  105. "_43": 21.5,
  106. "_44": 22,
  107. "_45": 22.5,
  108. "_46": 23,
  109. "_47": 23.5,
  110. "_48": 24,
  111. "_49": 24.5,
  112. "_50": 25,
  113. "_51": 25.5,
  114. "_52": 26,
  115. "_53": 26.5,
  116. "_54": 27,
  117. "_55": 27.5,
  118. "_56": 28,
  119. "_57": 28.5,
  120. "_58": 29,
  121. "_59": 29.5,
  122. "_60": 30,
  123. "_61": 30.5,
  124. "_62": 31,
  125. "_63": 31.5,
  126. "_64": 32
  127. }
  128. },
  129. "黑体": {
  130. "宽": {
  131. "_6": 6,
  132. "_7": 7,
  133. "_8": 8,
  134. "_9": 9,
  135. "_10": 10,
  136. "_11": 11,
  137. "_12": 12,
  138. "_13": 13,
  139. "_14": 14,
  140. "_15": 15,
  141. "_16": 16,
  142. "_17": 17,
  143. "_18": 18,
  144. "_19": 19,
  145. "_20": 20,
  146. "_21": 21,
  147. "_22": 22,
  148. "_23": 23,
  149. "_24": 24,
  150. "_25": 25,
  151. "_26": 26,
  152. "_27": 27,
  153. "_28": 28,
  154. "_29": 29,
  155. "_30": 30,
  156. "_31": 31,
  157. "_32": 32,
  158. "_33": 33,
  159. "_34": 34,
  160. "_35": 35,
  161. "_36": 36,
  162. "_37": 37,
  163. "_38": 38,
  164. "_39": 39,
  165. "_40": 40,
  166. "_41": 41,
  167. "_42": 42,
  168. "_43": 43,
  169. "_44": 44,
  170. "_45": 45,
  171. "_46": 46,
  172. "_47": 47,
  173. "_48": 48,
  174. "_49": 49,
  175. "_50": 50,
  176. "_51": 51,
  177. "_52": 52,
  178. "_53": 53,
  179. "_54": 54,
  180. "_55": 55,
  181. "_56": 56,
  182. "_57": 57,
  183. "_58": 58,
  184. "_59": 59,
  185. "_60": 60,
  186. "_61": 61,
  187. "_62": 62,
  188. "_63": 63,
  189. "_64": 64
  190. },
  191. "窄": {
  192. "_6": 3,
  193. "_7": 3.5,
  194. "_8": 4,
  195. "_9": 4.5,
  196. "_10": 5,
  197. "_11": 5.5,
  198. "_12": 6,
  199. "_13": 6.5,
  200. "_14": 7,
  201. "_15": 7.5,
  202. "_16": 8,
  203. "_17": 8.5,
  204. "_18": 9,
  205. "_19": 9.5,
  206. "_20": 10,
  207. "_21": 10.5,
  208. "_22": 11,
  209. "_23": 11.5,
  210. "_24": 12,
  211. "_25": 12.5,
  212. "_26": 13,
  213. "_27": 13.5,
  214. "_28": 14,
  215. "_29": 14.5,
  216. "_30": 15,
  217. "_31": 15.5,
  218. "_32": 16,
  219. "_33": 16.5,
  220. "_34": 17,
  221. "_35": 17.5,
  222. "_36": 18,
  223. "_37": 18.5,
  224. "_38": 19,
  225. "_39": 19.5,
  226. "_40": 20,
  227. "_41": 20.5,
  228. "_42": 21,
  229. "_43": 21.5,
  230. "_44": 22,
  231. "_45": 22.5,
  232. "_46": 23,
  233. "_47": 23.5,
  234. "_48": 24,
  235. "_49": 24.5,
  236. "_50": 25,
  237. "_51": 25.5,
  238. "_52": 26,
  239. "_53": 26.5,
  240. "_54": 27,
  241. "_55": 27.5,
  242. "_56": 28,
  243. "_57": 28.5,
  244. "_58": 29,
  245. "_59": 29.5,
  246. "_60": 30,
  247. "_61": 30.5,
  248. "_62": 31,
  249. "_63": 31.5,
  250. "_64": 32
  251. }
  252. },
  253. "楷体": {
  254. "宽": {
  255. "_6": 6,
  256. "_7": 7,
  257. "_8": 8,
  258. "_9": 9,
  259. "_10": 10,
  260. "_11": 11,
  261. "_12": 12,
  262. "_13": 13,
  263. "_14": 14,
  264. "_15": 15,
  265. "_16": 16,
  266. "_17": 17,
  267. "_18": 18,
  268. "_19": 19,
  269. "_20": 20,
  270. "_21": 21,
  271. "_22": 22,
  272. "_23": 23,
  273. "_24": 24,
  274. "_25": 25,
  275. "_26": 26,
  276. "_27": 27,
  277. "_28": 28,
  278. "_29": 29,
  279. "_30": 30,
  280. "_31": 31,
  281. "_32": 32,
  282. "_33": 33,
  283. "_34": 34,
  284. "_35": 35,
  285. "_36": 36,
  286. "_37": 37,
  287. "_38": 38,
  288. "_39": 39,
  289. "_40": 40,
  290. "_41": 41,
  291. "_42": 42,
  292. "_43": 43,
  293. "_44": 44,
  294. "_45": 45,
  295. "_46": 46,
  296. "_47": 47,
  297. "_48": 48,
  298. "_49": 49,
  299. "_50": 50,
  300. "_51": 51,
  301. "_52": 52,
  302. "_53": 53,
  303. "_54": 54,
  304. "_55": 55,
  305. "_56": 56,
  306. "_57": 57,
  307. "_58": 58,
  308. "_59": 59,
  309. "_60": 60,
  310. "_61": 61,
  311. "_62": 62,
  312. "_63": 63,
  313. "_64": 64
  314. },
  315. "窄": {
  316. "_6": 3,
  317. "_7": 3.5,
  318. "_8": 4,
  319. "_9": 4.5,
  320. "_10": 5,
  321. "_11": 5.5,
  322. "_12": 6,
  323. "_13": 6.5,
  324. "_14": 7,
  325. "_15": 7.5,
  326. "_16": 8,
  327. "_17": 8.5,
  328. "_18": 9,
  329. "_19": 9.5,
  330. "_20": 10,
  331. "_21": 10.5,
  332. "_22": 11,
  333. "_23": 11.5,
  334. "_24": 12,
  335. "_25": 12.5,
  336. "_26": 13,
  337. "_27": 13.5,
  338. "_28": 14,
  339. "_29": 14.5,
  340. "_30": 15,
  341. "_31": 15.5,
  342. "_32": 16,
  343. "_33": 16.5,
  344. "_34": 17,
  345. "_35": 17.5,
  346. "_36": 18,
  347. "_37": 18.5,
  348. "_38": 19,
  349. "_39": 19.5,
  350. "_40": 20,
  351. "_41": 20.5,
  352. "_42": 21,
  353. "_43": 21.5,
  354. "_44": 22,
  355. "_45": 22.5,
  356. "_46": 23,
  357. "_47": 23.5,
  358. "_48": 24,
  359. "_49": 24.5,
  360. "_50": 25,
  361. "_51": 25.5,
  362. "_52": 26,
  363. "_53": 26.5,
  364. "_54": 27,
  365. "_55": 27.5,
  366. "_56": 28,
  367. "_57": 28.5,
  368. "_58": 29,
  369. "_59": 29.5,
  370. "_60": 30,
  371. "_61": 30.5,
  372. "_62": 31,
  373. "_63": 31.5,
  374. "_64": 32
  375. }
  376. },
  377. "Arial": {
  378. "宽": {
  379. "_6": 6,
  380. "_7": 7,
  381. "_8": 8,
  382. "_9": 9,
  383. "_10": 10,
  384. "_11": 11,
  385. "_12": 12,
  386. "_13": 13,
  387. "_14": 14,
  388. "_15": 15,
  389. "_16": 16,
  390. "_17": 17,
  391. "_18": 18,
  392. "_19": 19,
  393. "_20": 20,
  394. "_21": 21,
  395. "_22": 22,
  396. "_23": 23,
  397. "_24": 24,
  398. "_25": 25,
  399. "_26": 26,
  400. "_27": 27,
  401. "_28": 28,
  402. "_29": 29,
  403. "_30": 30,
  404. "_31": 31,
  405. "_32": 32,
  406. "_33": 33,
  407. "_34": 34,
  408. "_35": 35,
  409. "_36": 36,
  410. "_37": 37,
  411. "_38": 38,
  412. "_39": 39,
  413. "_40": 40,
  414. "_41": 41,
  415. "_42": 42,
  416. "_43": 43,
  417. "_44": 44,
  418. "_45": 45,
  419. "_46": 46,
  420. "_47": 47,
  421. "_48": 48,
  422. "_49": 49,
  423. "_50": 50,
  424. "_51": 51,
  425. "_52": 52,
  426. "_53": 53,
  427. "_54": 54,
  428. "_55": 55,
  429. "_56": 56,
  430. "_57": 57,
  431. "_58": 58,
  432. "_59": 59,
  433. "_60": 60,
  434. "_61": 61,
  435. "_62": 62,
  436. "_63": 63,
  437. "_64": 64
  438. },
  439. "窄": {
  440. "_6": 3.3399999141693115,
  441. "_7": 3.8899998664855957,
  442. "_8": 4.449999809265137,
  443. "_9": 5.009999752044678,
  444. "_10": 5.559999942779541,
  445. "_11": 6.119999885559082,
  446. "_12": 6.670000076293945,
  447. "_13": 7.230000019073486,
  448. "_14": 7.789999961853027,
  449. "_15": 8.34000015258789,
  450. "_16": 8.899999618530273,
  451. "_17": 9.449999809265136,
  452. "_18": 10.010000228881836,
  453. "_19": 10.569999694824218,
  454. "_20": 11.119999885559082,
  455. "_21": 11.679999351501464,
  456. "_22": 12.239999771118164,
  457. "_23": 12.789999961853027,
  458. "_24": 13.34999942779541,
  459. "_25": 13.899999618530273,
  460. "_26": 14.460000038146972,
  461. "_27": 15.019999504089355,
  462. "_28": 15.569999694824218,
  463. "_29": 16.1299991607666,
  464. "_30": 16.68000030517578,
  465. "_31": 17.239999771118164,
  466. "_32": 17.799999237060547,
  467. "_33": 18.350000381469726,
  468. "_34": 18.90999984741211,
  469. "_35": 19.469999313354492,
  470. "_36": 20.020000457763672,
  471. "_37": 20.579999923706054,
  472. "_38": 21.1299991607666,
  473. "_39": 21.689998626708984,
  474. "_40": 22.25,
  475. "_41": 22.799999237060547,
  476. "_42": 23.35999870300293,
  477. "_43": 23.90999984741211,
  478. "_44": 24.469999313354492,
  479. "_45": 25.029998779296875,
  480. "_46": 25.579999923706054,
  481. "_47": 26.139999389648437,
  482. "_48": 26.69999885559082,
  483. "_49": 27.25,
  484. "_50": 27.809999465942383,
  485. "_51": 28.35999870300293,
  486. "_52": 28.920000076293945,
  487. "_53": 29.479999542236328,
  488. "_54": 30.029998779296875,
  489. "_55": 30.59000015258789,
  490. "_56": 31.139999389648437,
  491. "_57": 31.69999885559082,
  492. "_58": 32.2599983215332,
  493. "_59": 32.80999755859375,
  494. "_60": 33.369998931884766,
  495. "_61": 33.93000030517578,
  496. "_62": 34.47999954223633,
  497. "_63": 35.040000915527344,
  498. "_64": 35.59000015258789
  499. }
  500. },
  501. getFontWidth: function(fontName, fontHeight, typeStr) {
  502. let rst = 12;
  503. if (fontWidthMap[fontName]) {
  504. rst = fontWidthMap[fontName][typeStr]['_' + fontHeight];
  505. } else {
  506. rst = fontWidthMap['宋体'][typeStr]['_' + fontHeight];
  507. }
  508. return rst;
  509. }
  510. };
  511. module.exports = fontWidthMap;