/** * Helvetica advance widths in 1/1000 em, keyed by code point, as measured * through react-pdf's own pdfkit metrics (the WinAnsi glyph set plus the * common typographic extras). Used to estimate whether a word fits its * column before react-pdf lays the text out; see approxWidthPt in * pdf-template.tsx. * * Generated once with `new PDFDocument().font('Helvetica').fontSize(1000) * .widthOfString(ch)` for U+0020..U+017F and a few U+20xx code points. * Glyphs Helvetica does not carry are omitted and fall back to a * conservative default at the call site. */ export const HELVETICA_WIDTHS: ReadonlyMap = new Map([ [32, 278], [33, 278], [34, 355], [35, 556], [36, 556], [37, 889], [38, 667], [39, 191], [40, 333], [41, 333], [42, 389], [43, 584], [44, 278], [45, 333], [46, 278], [47, 278], [48, 556], [49, 556], [50, 556], [51, 556], [52, 556], [53, 556], [54, 556], [55, 556], [56, 556], [57, 556], [58, 278], [59, 278], [60, 584], [61, 584], [62, 584], [63, 556], [64, 1015], [65, 667], [66, 667], [67, 722], [68, 722], [69, 667], [70, 611], [71, 778], [72, 722], [73, 278], [74, 500], [75, 667], [76, 556], [77, 833], [78, 722], [79, 778], [80, 667], [81, 778], [82, 722], [83, 667], [84, 611], [85, 722], [86, 667], [87, 944], [88, 667], [89, 667], [90, 611], [91, 278], [92, 278], [93, 278], [94, 469], [95, 556], [96, 333], [97, 556], [98, 556], [99, 500], [100, 556], [101, 556], [102, 278], [103, 556], [104, 556], [105, 222], [106, 222], [107, 500], [108, 222], [109, 833], [110, 556], [111, 556], [112, 556], [113, 556], [114, 333], [115, 500], [116, 278], [117, 556], [118, 500], [119, 722], [120, 500], [121, 500], [122, 500], [123, 334], [124, 260], [125, 334], [126, 584], [160, 278], [161, 333], [162, 556], [163, 556], [164, 556], [165, 556], [166, 260], [167, 556], [168, 333], [169, 737], [170, 370], [171, 556], [172, 584], [174, 737], [175, 333], [176, 400], [177, 584], [178, 333], [179, 333], [180, 333], [181, 556], [182, 537], [183, 278], [184, 333], [185, 333], [186, 365], [187, 556], [188, 834], [189, 834], [190, 834], [191, 611], [192, 667], [193, 667], [194, 667], [195, 667], [196, 667], [197, 667], [198, 1000], [199, 722], [200, 667], [201, 667], [202, 667], [203, 667], [204, 278], [205, 278], [206, 278], [207, 278], [208, 722], [209, 722], [210, 778], [211, 778], [212, 778], [213, 778], [214, 778], [215, 584], [216, 778], [217, 722], [218, 722], [219, 722], [220, 722], [221, 667], [222, 667], [223, 611], [224, 556], [225, 556], [226, 556], [227, 556], [228, 556], [229, 556], [230, 889], [231, 500], [232, 556], [233, 556], [234, 556], [235, 556], [236, 278], [237, 278], [238, 278], [239, 278], [240, 556], [241, 556], [242, 556], [243, 556], [244, 556], [245, 556], [246, 556], [247, 584], [248, 611], [249, 556], [250, 556], [251, 556], [252, 556], [253, 500], [254, 556], [255, 500], [338, 1000], [339, 944], [352, 667], [353, 500], [376, 500], [381, 611], [382, 500], [8211, 556], [8212, 1000], [8216, 222], [8217, 222], [8220, 333], [8221, 333], [8226, 350], [8230, 1000], [8240, 1000], [8364, 556], [8482, 1000], ])