jpc_helper_font_width.js 12 KB

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