UNPKG

react-pdf-builder

Version:
660 lines (659 loc) 36.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Fonts = exports.fontDefinitions = void 0; const rpbVersion = 'v2.0.5'; const defaultFontsCdnUrl = `https://cdn.jsdelivr.net/gh/justinmahar/react-pdf-builder@${rpbVersion}/public/fonts`; /** * Defines font files for commonly used modern fonts. */ exports.fontDefinitions = [ { type: 'mono', dir: 'courier-prime-v9-latin', family: 'Courier Prime', fonts: [ { filename: 'courier-prime-v9-latin-700.ttf', fontWeight: 700 }, { filename: 'courier-prime-v9-latin-700italic.ttf', fontWeight: 700, fontStyle: 'italic' }, { filename: 'courier-prime-v9-latin-italic.ttf', fontStyle: 'italic' }, { filename: 'courier-prime-v9-latin-regular.ttf', fontWeight: 400 }, ], }, { type: 'mono', dir: 'dm-mono-v14-latin', family: 'DM Mono', fonts: [ { filename: 'dm-mono-v14-latin-300.ttf', fontWeight: 300 }, { filename: 'dm-mono-v14-latin-300italic.ttf', fontWeight: 300, fontStyle: 'italic' }, { filename: 'dm-mono-v14-latin-500.ttf', fontWeight: 500 }, { filename: 'dm-mono-v14-latin-500italic.ttf', fontWeight: 500, fontStyle: 'italic' }, { filename: 'dm-mono-v14-latin-italic.ttf', fontStyle: 'italic' }, { filename: 'dm-mono-v14-latin-regular.ttf', fontWeight: 400 }, ], }, { type: 'mono', dir: 'jetbrains-mono-v20-latin', family: 'JetBrains Mono', fonts: [ { filename: 'jetbrains-mono-v20-latin-100.ttf', fontWeight: 100 }, { filename: 'jetbrains-mono-v20-latin-100italic.ttf', fontWeight: 100, fontStyle: 'italic' }, { filename: 'jetbrains-mono-v20-latin-200.ttf', fontWeight: 200 }, { filename: 'jetbrains-mono-v20-latin-200italic.ttf', fontWeight: 200, fontStyle: 'italic' }, { filename: 'jetbrains-mono-v20-latin-300.ttf', fontWeight: 300 }, { filename: 'jetbrains-mono-v20-latin-300italic.ttf', fontWeight: 300, fontStyle: 'italic' }, { filename: 'jetbrains-mono-v20-latin-500.ttf', fontWeight: 500 }, { filename: 'jetbrains-mono-v20-latin-500italic.ttf', fontWeight: 500, fontStyle: 'italic' }, { filename: 'jetbrains-mono-v20-latin-600.ttf', fontWeight: 600 }, { filename: 'jetbrains-mono-v20-latin-600italic.ttf', fontWeight: 600, fontStyle: 'italic' }, { filename: 'jetbrains-mono-v20-latin-700.ttf', fontWeight: 700 }, { filename: 'jetbrains-mono-v20-latin-700italic.ttf', fontWeight: 700, fontStyle: 'italic' }, { filename: 'jetbrains-mono-v20-latin-800.ttf', fontWeight: 800 }, { filename: 'jetbrains-mono-v20-latin-800italic.ttf', fontWeight: 800, fontStyle: 'italic' }, { filename: 'jetbrains-mono-v20-latin-italic.ttf', fontStyle: 'italic' }, { filename: 'jetbrains-mono-v20-latin-regular.ttf', fontWeight: 400 }, ], }, { type: 'mono', dir: 'roboto-mono-v23-latin', family: 'Roboto Mono', fonts: [ { filename: 'roboto-mono-v23-latin-100.ttf', fontWeight: 100 }, { filename: 'roboto-mono-v23-latin-100italic.ttf', fontWeight: 100, fontStyle: 'italic' }, { filename: 'roboto-mono-v23-latin-200.ttf', fontWeight: 200 }, { filename: 'roboto-mono-v23-latin-200italic.ttf', fontWeight: 200, fontStyle: 'italic' }, { filename: 'roboto-mono-v23-latin-300.ttf', fontWeight: 300 }, { filename: 'roboto-mono-v23-latin-300italic.ttf', fontWeight: 300, fontStyle: 'italic' }, { filename: 'roboto-mono-v23-latin-500.ttf', fontWeight: 500 }, { filename: 'roboto-mono-v23-latin-500italic.ttf', fontWeight: 500, fontStyle: 'italic' }, { filename: 'roboto-mono-v23-latin-600.ttf', fontWeight: 600 }, { filename: 'roboto-mono-v23-latin-600italic.ttf', fontWeight: 600, fontStyle: 'italic' }, { filename: 'roboto-mono-v23-latin-700.ttf', fontWeight: 700 }, { filename: 'roboto-mono-v23-latin-700italic.ttf', fontWeight: 700, fontStyle: 'italic' }, { filename: 'roboto-mono-v23-latin-italic.ttf', fontStyle: 'italic' }, { filename: 'roboto-mono-v23-latin-regular.ttf', fontWeight: 400 }, ], }, { type: 'mono', dir: 'source-code-pro-v23-latin', family: 'Source Code Pro', fonts: [ { filename: 'source-code-pro-v23-latin-200.ttf', fontWeight: 200 }, { filename: 'source-code-pro-v23-latin-200italic.ttf', fontWeight: 200, fontStyle: 'italic' }, { filename: 'source-code-pro-v23-latin-300.ttf', fontWeight: 300 }, { filename: 'source-code-pro-v23-latin-300italic.ttf', fontWeight: 300, fontStyle: 'italic' }, { filename: 'source-code-pro-v23-latin-500.ttf', fontWeight: 500 }, { filename: 'source-code-pro-v23-latin-500italic.ttf', fontWeight: 500, fontStyle: 'italic' }, { filename: 'source-code-pro-v23-latin-600.ttf', fontWeight: 600 }, { filename: 'source-code-pro-v23-latin-600italic.ttf', fontWeight: 600, fontStyle: 'italic' }, { filename: 'source-code-pro-v23-latin-700.ttf', fontWeight: 700 }, { filename: 'source-code-pro-v23-latin-700italic.ttf', fontWeight: 700, fontStyle: 'italic' }, { filename: 'source-code-pro-v23-latin-800.ttf', fontWeight: 800 }, { filename: 'source-code-pro-v23-latin-800italic.ttf', fontWeight: 800, fontStyle: 'italic' }, { filename: 'source-code-pro-v23-latin-900.ttf', fontWeight: 900 }, { filename: 'source-code-pro-v23-latin-900italic.ttf', fontWeight: 900, fontStyle: 'italic' }, { filename: 'source-code-pro-v23-latin-italic.ttf', fontStyle: 'italic' }, { filename: 'source-code-pro-v23-latin-regular.ttf', fontWeight: 400 }, ], }, { type: 'mono', dir: 'space-mono-v14-latin', family: 'Space Mono', fonts: [ { filename: 'space-mono-v14-latin-700.ttf', fontWeight: 700 }, { filename: 'space-mono-v14-latin-700italic.ttf', fontWeight: 700, fontStyle: 'italic' }, { filename: 'space-mono-v14-latin-italic.ttf', fontStyle: 'italic' }, { filename: 'space-mono-v14-latin-regular.ttf', fontWeight: 400 }, ], }, { type: 'mono', dir: 'ubuntu-mono-v17-latin', family: 'Ubuntu Mono', fonts: [ { filename: 'ubuntu-mono-v17-latin-700.ttf', fontWeight: 700 }, { filename: 'ubuntu-mono-v17-latin-700italic.ttf', fontWeight: 700, fontStyle: 'italic' }, { filename: 'ubuntu-mono-v17-latin-italic.ttf', fontStyle: 'italic' }, { filename: 'ubuntu-mono-v17-latin-regular.ttf', fontWeight: 400 }, ], }, { type: 'sans-serif', dir: 'inter-v18-latin', family: 'Inter', fonts: [ { filename: 'inter-v18-latin-100.ttf', fontWeight: 100 }, { filename: 'inter-v18-latin-100italic.ttf', fontWeight: 100, fontStyle: 'italic' }, { filename: 'inter-v18-latin-200.ttf', fontWeight: 200 }, { filename: 'inter-v18-latin-200italic.ttf', fontWeight: 200, fontStyle: 'italic' }, { filename: 'inter-v18-latin-300.ttf', fontWeight: 300 }, { filename: 'inter-v18-latin-300italic.ttf', fontWeight: 300, fontStyle: 'italic' }, { filename: 'inter-v18-latin-500.ttf', fontWeight: 500 }, { filename: 'inter-v18-latin-500italic.ttf', fontWeight: 500, fontStyle: 'italic' }, { filename: 'inter-v18-latin-600.ttf', fontWeight: 600 }, { filename: 'inter-v18-latin-600italic.ttf', fontWeight: 600, fontStyle: 'italic' }, { filename: 'inter-v18-latin-700.ttf', fontWeight: 700 }, { filename: 'inter-v18-latin-700italic.ttf', fontWeight: 700, fontStyle: 'italic' }, { filename: 'inter-v18-latin-800.ttf', fontWeight: 800 }, { filename: 'inter-v18-latin-800italic.ttf', fontWeight: 800, fontStyle: 'italic' }, { filename: 'inter-v18-latin-900.ttf', fontWeight: 900 }, { filename: 'inter-v18-latin-900italic.ttf', fontWeight: 900, fontStyle: 'italic' }, { filename: 'inter-v18-latin-italic.ttf', fontStyle: 'italic' }, { filename: 'inter-v18-latin-regular.ttf', fontWeight: 400 }, ], }, { type: 'sans-serif', dir: 'lato-v24-latin', family: 'Lato', fonts: [ { filename: 'lato-v24-latin-100.ttf', fontWeight: 100 }, { filename: 'lato-v24-latin-100italic.ttf', fontWeight: 100, fontStyle: 'italic' }, { filename: 'lato-v24-latin-300.ttf', fontWeight: 300 }, { filename: 'lato-v24-latin-300italic.ttf', fontWeight: 300, fontStyle: 'italic' }, { filename: 'lato-v24-latin-700.ttf', fontWeight: 700 }, { filename: 'lato-v24-latin-700italic.ttf', fontWeight: 700, fontStyle: 'italic' }, { filename: 'lato-v24-latin-900.ttf', fontWeight: 900 }, { filename: 'lato-v24-latin-900italic.ttf', fontWeight: 900, fontStyle: 'italic' }, { filename: 'lato-v24-latin-italic.ttf', fontStyle: 'italic' }, { filename: 'lato-v24-latin-regular.ttf', fontWeight: 400 }, ], }, { type: 'sans-serif', dir: 'montserrat-v29-latin', family: 'Montserrat', fonts: [ { filename: 'montserrat-v29-latin-100.ttf', fontWeight: 100 }, { filename: 'montserrat-v29-latin-100italic.ttf', fontWeight: 100, fontStyle: 'italic' }, { filename: 'montserrat-v29-latin-200.ttf', fontWeight: 200 }, { filename: 'montserrat-v29-latin-200italic.ttf', fontWeight: 200, fontStyle: 'italic' }, { filename: 'montserrat-v29-latin-300.ttf', fontWeight: 300 }, { filename: 'montserrat-v29-latin-300italic.ttf', fontWeight: 300, fontStyle: 'italic' }, { filename: 'montserrat-v29-latin-500.ttf', fontWeight: 500 }, { filename: 'montserrat-v29-latin-500italic.ttf', fontWeight: 500, fontStyle: 'italic' }, { filename: 'montserrat-v29-latin-600.ttf', fontWeight: 600 }, { filename: 'montserrat-v29-latin-600italic.ttf', fontWeight: 600, fontStyle: 'italic' }, { filename: 'montserrat-v29-latin-700.ttf', fontWeight: 700 }, { filename: 'montserrat-v29-latin-700italic.ttf', fontWeight: 700, fontStyle: 'italic' }, { filename: 'montserrat-v29-latin-800.ttf', fontWeight: 800 }, { filename: 'montserrat-v29-latin-800italic.ttf', fontWeight: 800, fontStyle: 'italic' }, { filename: 'montserrat-v29-latin-900.ttf', fontWeight: 900 }, { filename: 'montserrat-v29-latin-900italic.ttf', fontWeight: 900, fontStyle: 'italic' }, { filename: 'montserrat-v29-latin-italic.ttf', fontStyle: 'italic' }, { filename: 'montserrat-v29-latin-regular.ttf', fontWeight: 400 }, ], }, { type: 'sans-serif', dir: 'noto-sans-v38-latin', family: 'Noto Sans', fonts: [ { filename: 'noto-sans-v38-latin-100.ttf', fontWeight: 100 }, { filename: 'noto-sans-v38-latin-100italic.ttf', fontWeight: 100, fontStyle: 'italic' }, { filename: 'noto-sans-v38-latin-200.ttf', fontWeight: 200 }, { filename: 'noto-sans-v38-latin-200italic.ttf', fontWeight: 200, fontStyle: 'italic' }, { filename: 'noto-sans-v38-latin-300.ttf', fontWeight: 300 }, { filename: 'noto-sans-v38-latin-300italic.ttf', fontWeight: 300, fontStyle: 'italic' }, { filename: 'noto-sans-v38-latin-500.ttf', fontWeight: 500 }, { filename: 'noto-sans-v38-latin-500italic.ttf', fontWeight: 500, fontStyle: 'italic' }, { filename: 'noto-sans-v38-latin-600.ttf', fontWeight: 600 }, { filename: 'noto-sans-v38-latin-600italic.ttf', fontWeight: 600, fontStyle: 'italic' }, { filename: 'noto-sans-v38-latin-700.ttf', fontWeight: 700 }, { filename: 'noto-sans-v38-latin-700italic.ttf', fontWeight: 700, fontStyle: 'italic' }, { filename: 'noto-sans-v38-latin-800.ttf', fontWeight: 800 }, { filename: 'noto-sans-v38-latin-800italic.ttf', fontWeight: 800, fontStyle: 'italic' }, { filename: 'noto-sans-v38-latin-900.ttf', fontWeight: 900 }, { filename: 'noto-sans-v38-latin-900italic.ttf', fontWeight: 900, fontStyle: 'italic' }, { filename: 'noto-sans-v38-latin-italic.ttf', fontStyle: 'italic' }, { filename: 'noto-sans-v38-latin-regular.ttf', fontWeight: 400 }, ], }, { type: 'sans-serif', dir: 'open-sans-v40-latin', family: 'Open Sans', fonts: [ { filename: 'open-sans-v40-latin-300.ttf', fontWeight: 300 }, { filename: 'open-sans-v40-latin-300italic.ttf', fontWeight: 300, fontStyle: 'italic' }, { filename: 'open-sans-v40-latin-500.ttf', fontWeight: 500 }, { filename: 'open-sans-v40-latin-500italic.ttf', fontWeight: 500, fontStyle: 'italic' }, { filename: 'open-sans-v40-latin-600.ttf', fontWeight: 600 }, { filename: 'open-sans-v40-latin-600italic.ttf', fontWeight: 600, fontStyle: 'italic' }, { filename: 'open-sans-v40-latin-700.ttf', fontWeight: 700 }, { filename: 'open-sans-v40-latin-700italic.ttf', fontWeight: 700, fontStyle: 'italic' }, { filename: 'open-sans-v40-latin-800.ttf', fontWeight: 800 }, { filename: 'open-sans-v40-latin-800italic.ttf', fontWeight: 800, fontStyle: 'italic' }, { filename: 'open-sans-v40-latin-italic.ttf', fontStyle: 'italic' }, { filename: 'open-sans-v40-latin-regular.ttf', fontWeight: 400 }, ], }, { type: 'sans-serif', dir: 'poppins-v22-latin', family: 'Poppins', fonts: [ { filename: 'poppins-v22-latin-100.ttf', fontWeight: 100 }, { filename: 'poppins-v22-latin-100italic.ttf', fontWeight: 100, fontStyle: 'italic' }, { filename: 'poppins-v22-latin-200.ttf', fontWeight: 200 }, { filename: 'poppins-v22-latin-200italic.ttf', fontWeight: 200, fontStyle: 'italic' }, { filename: 'poppins-v22-latin-300.ttf', fontWeight: 300 }, { filename: 'poppins-v22-latin-300italic.ttf', fontWeight: 300, fontStyle: 'italic' }, { filename: 'poppins-v22-latin-500.ttf', fontWeight: 500 }, { filename: 'poppins-v22-latin-500italic.ttf', fontWeight: 500, fontStyle: 'italic' }, { filename: 'poppins-v22-latin-600.ttf', fontWeight: 600 }, { filename: 'poppins-v22-latin-600italic.ttf', fontWeight: 600, fontStyle: 'italic' }, { filename: 'poppins-v22-latin-700.ttf', fontWeight: 700 }, { filename: 'poppins-v22-latin-700italic.ttf', fontWeight: 700, fontStyle: 'italic' }, { filename: 'poppins-v22-latin-800.ttf', fontWeight: 800 }, { filename: 'poppins-v22-latin-800italic.ttf', fontWeight: 800, fontStyle: 'italic' }, { filename: 'poppins-v22-latin-900.ttf', fontWeight: 900 }, { filename: 'poppins-v22-latin-900italic.ttf', fontWeight: 900, fontStyle: 'italic' }, { filename: 'poppins-v22-latin-italic.ttf', fontStyle: 'italic' }, { filename: 'poppins-v22-latin-regular.ttf', fontWeight: 400 }, ], }, { type: 'sans-serif', dir: 'raleway-v34-latin', family: 'Raleway', fonts: [ { filename: 'raleway-v34-latin-100.ttf', fontWeight: 100 }, { filename: 'raleway-v34-latin-100italic.ttf', fontWeight: 100, fontStyle: 'italic' }, { filename: 'raleway-v34-latin-200.ttf', fontWeight: 200 }, { filename: 'raleway-v34-latin-200italic.ttf', fontWeight: 200, fontStyle: 'italic' }, { filename: 'raleway-v34-latin-300.ttf', fontWeight: 300 }, { filename: 'raleway-v34-latin-300italic.ttf', fontWeight: 300, fontStyle: 'italic' }, { filename: 'raleway-v34-latin-500.ttf', fontWeight: 500 }, { filename: 'raleway-v34-latin-500italic.ttf', fontWeight: 500, fontStyle: 'italic' }, { filename: 'raleway-v34-latin-600.ttf', fontWeight: 600 }, { filename: 'raleway-v34-latin-600italic.ttf', fontWeight: 600, fontStyle: 'italic' }, { filename: 'raleway-v34-latin-700.ttf', fontWeight: 700 }, { filename: 'raleway-v34-latin-700italic.ttf', fontWeight: 700, fontStyle: 'italic' }, { filename: 'raleway-v34-latin-800.ttf', fontWeight: 800 }, { filename: 'raleway-v34-latin-800italic.ttf', fontWeight: 800, fontStyle: 'italic' }, { filename: 'raleway-v34-latin-900.ttf', fontWeight: 900 }, { filename: 'raleway-v34-latin-900italic.ttf', fontWeight: 900, fontStyle: 'italic' }, { filename: 'raleway-v34-latin-italic.ttf', fontStyle: 'italic' }, { filename: 'raleway-v34-latin-regular.ttf', fontWeight: 400 }, ], }, { type: 'sans-serif', dir: 'roboto-condensed-v27-latin', family: 'Roboto Condensed', fonts: [ { filename: 'roboto-condensed-v27-latin-100.ttf', fontWeight: 100 }, { filename: 'roboto-condensed-v27-latin-100italic.ttf', fontWeight: 100, fontStyle: 'italic' }, { filename: 'roboto-condensed-v27-latin-200.ttf', fontWeight: 200 }, { filename: 'roboto-condensed-v27-latin-200italic.ttf', fontWeight: 200, fontStyle: 'italic' }, { filename: 'roboto-condensed-v27-latin-300.ttf', fontWeight: 300 }, { filename: 'roboto-condensed-v27-latin-300italic.ttf', fontWeight: 300, fontStyle: 'italic' }, { filename: 'roboto-condensed-v27-latin-500.ttf', fontWeight: 500 }, { filename: 'roboto-condensed-v27-latin-500italic.ttf', fontWeight: 500, fontStyle: 'italic' }, { filename: 'roboto-condensed-v27-latin-600.ttf', fontWeight: 600 }, { filename: 'roboto-condensed-v27-latin-600italic.ttf', fontWeight: 600, fontStyle: 'italic' }, { filename: 'roboto-condensed-v27-latin-700.ttf', fontWeight: 700 }, { filename: 'roboto-condensed-v27-latin-700italic.ttf', fontWeight: 700, fontStyle: 'italic' }, { filename: 'roboto-condensed-v27-latin-800.ttf', fontWeight: 800 }, { filename: 'roboto-condensed-v27-latin-800italic.ttf', fontWeight: 800, fontStyle: 'italic' }, { filename: 'roboto-condensed-v27-latin-900.ttf', fontWeight: 900 }, { filename: 'roboto-condensed-v27-latin-900italic.ttf', fontWeight: 900, fontStyle: 'italic' }, { filename: 'roboto-condensed-v27-latin-italic.ttf', fontStyle: 'italic' }, { filename: 'roboto-condensed-v27-latin-regular.ttf', fontWeight: 400 }, ], }, { type: 'sans-serif', dir: 'roboto-v47-latin', family: 'Roboto', fonts: [ { filename: 'roboto-v47-latin-100.ttf', fontWeight: 100 }, { filename: 'roboto-v47-latin-100italic.ttf', fontWeight: 100, fontStyle: 'italic' }, { filename: 'roboto-v47-latin-200.ttf', fontWeight: 200 }, { filename: 'roboto-v47-latin-200italic.ttf', fontWeight: 200, fontStyle: 'italic' }, { filename: 'roboto-v47-latin-300.ttf', fontWeight: 300 }, { filename: 'roboto-v47-latin-300italic.ttf', fontWeight: 300, fontStyle: 'italic' }, { filename: 'roboto-v47-latin-500.ttf', fontWeight: 500 }, { filename: 'roboto-v47-latin-500italic.ttf', fontWeight: 500, fontStyle: 'italic' }, { filename: 'roboto-v47-latin-600.ttf', fontWeight: 600 }, { filename: 'roboto-v47-latin-600italic.ttf', fontWeight: 600, fontStyle: 'italic' }, { filename: 'roboto-v47-latin-700.ttf', fontWeight: 700 }, { filename: 'roboto-v47-latin-700italic.ttf', fontWeight: 700, fontStyle: 'italic' }, { filename: 'roboto-v47-latin-800.ttf', fontWeight: 800 }, { filename: 'roboto-v47-latin-800italic.ttf', fontWeight: 800, fontStyle: 'italic' }, { filename: 'roboto-v47-latin-900.ttf', fontWeight: 900 }, { filename: 'roboto-v47-latin-900italic.ttf', fontWeight: 900, fontStyle: 'italic' }, { filename: 'roboto-v47-latin-italic.ttf', fontStyle: 'italic' }, { filename: 'roboto-v47-latin-regular.ttf', fontWeight: 400 }, ], }, { type: 'serif', dir: 'bitter-v36-latin', family: 'Bitter', fonts: [ { filename: 'bitter-v36-latin-100.ttf', fontWeight: 100 }, { filename: 'bitter-v36-latin-100italic.ttf', fontWeight: 100, fontStyle: 'italic' }, { filename: 'bitter-v36-latin-200.ttf', fontWeight: 200 }, { filename: 'bitter-v36-latin-200italic.ttf', fontWeight: 200, fontStyle: 'italic' }, { filename: 'bitter-v36-latin-300.ttf', fontWeight: 300 }, { filename: 'bitter-v36-latin-300italic.ttf', fontWeight: 300, fontStyle: 'italic' }, { filename: 'bitter-v36-latin-500.ttf', fontWeight: 500 }, { filename: 'bitter-v36-latin-500italic.ttf', fontWeight: 500, fontStyle: 'italic' }, { filename: 'bitter-v36-latin-600.ttf', fontWeight: 600 }, { filename: 'bitter-v36-latin-600italic.ttf', fontWeight: 600, fontStyle: 'italic' }, { filename: 'bitter-v36-latin-700.ttf', fontWeight: 700 }, { filename: 'bitter-v36-latin-700italic.ttf', fontWeight: 700, fontStyle: 'italic' }, { filename: 'bitter-v36-latin-800.ttf', fontWeight: 800 }, { filename: 'bitter-v36-latin-800italic.ttf', fontWeight: 800, fontStyle: 'italic' }, { filename: 'bitter-v36-latin-900.ttf', fontWeight: 900 }, { filename: 'bitter-v36-latin-900italic.ttf', fontWeight: 900, fontStyle: 'italic' }, { filename: 'bitter-v36-latin-italic.ttf', fontStyle: 'italic' }, { filename: 'bitter-v36-latin-regular.ttf', fontWeight: 400 }, ], }, { type: 'serif', dir: 'crimson-text-v19-latin', family: 'Crimson Text', fonts: [ { filename: 'crimson-text-v19-latin-600.ttf', fontWeight: 600 }, { filename: 'crimson-text-v19-latin-600italic.ttf', fontWeight: 600, fontStyle: 'italic' }, { filename: 'crimson-text-v19-latin-700.ttf', fontWeight: 700 }, { filename: 'crimson-text-v19-latin-700italic.ttf', fontWeight: 700, fontStyle: 'italic' }, { filename: 'crimson-text-v19-latin-italic.ttf', fontStyle: 'italic' }, { filename: 'crimson-text-v19-latin-regular.ttf', fontWeight: 400 }, ], }, { type: 'serif', dir: 'eb-garamond-v30-latin', family: 'EB Garamond', fonts: [ { filename: 'eb-garamond-v30-latin-500.ttf', fontWeight: 500 }, { filename: 'eb-garamond-v30-latin-500italic.ttf', fontWeight: 500, fontStyle: 'italic' }, { filename: 'eb-garamond-v30-latin-600.ttf', fontWeight: 600 }, { filename: 'eb-garamond-v30-latin-600italic.ttf', fontWeight: 600, fontStyle: 'italic' }, { filename: 'eb-garamond-v30-latin-700.ttf', fontWeight: 700 }, { filename: 'eb-garamond-v30-latin-700italic.ttf', fontWeight: 700, fontStyle: 'italic' }, { filename: 'eb-garamond-v30-latin-800.ttf', fontWeight: 800 }, { filename: 'eb-garamond-v30-latin-800italic.ttf', fontWeight: 800, fontStyle: 'italic' }, { filename: 'eb-garamond-v30-latin-italic.ttf', fontStyle: 'italic' }, { filename: 'eb-garamond-v30-latin-regular.ttf', fontWeight: 400 }, ], }, { type: 'serif', dir: 'libre-baskerville-v14-latin', family: 'Libre Baskerville', fonts: [ { filename: 'libre-baskerville-v14-latin-700.ttf', fontWeight: 700 }, { filename: 'libre-baskerville-v14-latin-italic.ttf', fontStyle: 'italic' }, { filename: 'libre-baskerville-v14-latin-regular.ttf', fontWeight: 400 }, ], }, { type: 'serif', dir: 'lora-v35-latin', family: 'Lora', fonts: [ { filename: 'lora-v35-latin-500.ttf', fontWeight: 500 }, { filename: 'lora-v35-latin-500italic.ttf', fontWeight: 500, fontStyle: 'italic' }, { filename: 'lora-v35-latin-600.ttf', fontWeight: 600 }, { filename: 'lora-v35-latin-600italic.ttf', fontWeight: 600, fontStyle: 'italic' }, { filename: 'lora-v35-latin-700.ttf', fontWeight: 700 }, { filename: 'lora-v35-latin-700italic.ttf', fontWeight: 700, fontStyle: 'italic' }, { filename: 'lora-v35-latin-italic.ttf', fontStyle: 'italic' }, { filename: 'lora-v35-latin-regular.ttf', fontWeight: 400 }, ], }, { type: 'serif', dir: 'merriweather-v30-latin', family: 'Merriweather', fonts: [ { filename: 'merriweather-v30-latin-300.ttf', fontWeight: 300 }, { filename: 'merriweather-v30-latin-300italic.ttf', fontWeight: 300, fontStyle: 'italic' }, { filename: 'merriweather-v30-latin-700.ttf', fontWeight: 700 }, { filename: 'merriweather-v30-latin-700italic.ttf', fontWeight: 700, fontStyle: 'italic' }, { filename: 'merriweather-v30-latin-900.ttf', fontWeight: 900 }, { filename: 'merriweather-v30-latin-900italic.ttf', fontWeight: 900, fontStyle: 'italic' }, { filename: 'merriweather-v30-latin-italic.ttf', fontStyle: 'italic' }, { filename: 'merriweather-v30-latin-regular.ttf', fontWeight: 400 }, ], }, { type: 'serif', dir: 'noto-serif-v23-latin', family: 'Noto Serif', fonts: [ { filename: 'noto-serif-v23-latin-100.ttf', fontWeight: 100 }, { filename: 'noto-serif-v23-latin-100italic.ttf', fontWeight: 100, fontStyle: 'italic' }, { filename: 'noto-serif-v23-latin-200.ttf', fontWeight: 200 }, { filename: 'noto-serif-v23-latin-200italic.ttf', fontWeight: 200, fontStyle: 'italic' }, { filename: 'noto-serif-v23-latin-300.ttf', fontWeight: 300 }, { filename: 'noto-serif-v23-latin-300italic.ttf', fontWeight: 300, fontStyle: 'italic' }, { filename: 'noto-serif-v23-latin-500.ttf', fontWeight: 500 }, { filename: 'noto-serif-v23-latin-500italic.ttf', fontWeight: 500, fontStyle: 'italic' }, { filename: 'noto-serif-v23-latin-600.ttf', fontWeight: 600 }, { filename: 'noto-serif-v23-latin-600italic.ttf', fontWeight: 600, fontStyle: 'italic' }, { filename: 'noto-serif-v23-latin-700.ttf', fontWeight: 700 }, { filename: 'noto-serif-v23-latin-700italic.ttf', fontWeight: 700, fontStyle: 'italic' }, { filename: 'noto-serif-v23-latin-800.ttf', fontWeight: 800 }, { filename: 'noto-serif-v23-latin-800italic.ttf', fontWeight: 800, fontStyle: 'italic' }, { filename: 'noto-serif-v23-latin-900.ttf', fontWeight: 900 }, { filename: 'noto-serif-v23-latin-900italic.ttf', fontWeight: 900, fontStyle: 'italic' }, { filename: 'noto-serif-v23-latin-italic.ttf', fontStyle: 'italic' }, { filename: 'noto-serif-v23-latin-regular.ttf', fontWeight: 400 }, ], }, { type: 'serif', dir: 'playfair-display-v37-latin', family: 'Playfair Display', fonts: [ { filename: 'playfair-display-v37-latin-500.ttf', fontWeight: 500 }, { filename: 'playfair-display-v37-latin-500italic.ttf', fontWeight: 500, fontStyle: 'italic' }, { filename: 'playfair-display-v37-latin-600.ttf', fontWeight: 600 }, { filename: 'playfair-display-v37-latin-600italic.ttf', fontWeight: 600, fontStyle: 'italic' }, { filename: 'playfair-display-v37-latin-700.ttf', fontWeight: 700 }, { filename: 'playfair-display-v37-latin-700italic.ttf', fontWeight: 700, fontStyle: 'italic' }, { filename: 'playfair-display-v37-latin-800.ttf', fontWeight: 800 }, { filename: 'playfair-display-v37-latin-800italic.ttf', fontWeight: 800, fontStyle: 'italic' }, { filename: 'playfair-display-v37-latin-900.ttf', fontWeight: 900 }, { filename: 'playfair-display-v37-latin-900italic.ttf', fontWeight: 900, fontStyle: 'italic' }, { filename: 'playfair-display-v37-latin-italic.ttf', fontStyle: 'italic' }, { filename: 'playfair-display-v37-latin-regular.ttf', fontWeight: 400 }, ], }, { type: 'serif', dir: 'pt-serif-v18-latin', family: 'PT Serif', fonts: [ { filename: 'pt-serif-v18-latin-700.ttf', fontWeight: 700 }, { filename: 'pt-serif-v18-latin-700italic.ttf', fontWeight: 700, fontStyle: 'italic' }, { filename: 'pt-serif-v18-latin-italic.ttf', fontStyle: 'italic' }, { filename: 'pt-serif-v18-latin-regular.ttf', fontWeight: 400 }, ], }, ]; /** * Creates a path to the font file using fontsDirUrl if specified, falling back to the GitHub Pages site otherwise. */ const createFontSrc = (fontsDirUrl, family, filename) => { const src = fontsDirUrl ? `${fontsDirUrl}${fontsDirUrl.endsWith('/') ? '' : '/'}${filename}` : `${defaultFontsCdnUrl}${defaultFontsCdnUrl.endsWith('/') ? '' : '/'}${family.type}/${family.dir}/${filename}`; return src; }; /** * Allows drop-in support for common font families. See documentation for `Fonts.load()` for more info. * * Read more about [fonts in React PDF Builder here](https://justinmahar.github.io/react-pdf-builder/?path=/docs/documentation-fonts--docs). * * You can download TTF and WOFF fonts here: https://gwfh.mranftl.com/fonts * * For additional font support, see https://react-pdf.org/fonts */ class Fonts { } exports.Fonts = Fonts; Fonts.mono = { courierPrime: 'Courier Prime', dmMono: 'DM Mono', jetbrainsMono: 'JetBrains Mono', robotoMono: 'Roboto Mono', sourceCodePro: 'Source Code Pro', spaceMono: 'Space Mono', ubuntuMono: 'Ubuntu Mono', }; Fonts.sansSerif = { inter: 'Inter', lato: 'Lato', montserrat: 'Montserrat', notoSans: 'Noto Sans', openSans: 'Open Sans', poppins: 'Poppins', raleway: 'Raleway', robotoCondensed: 'Roboto Condensed', roboto: 'Roboto', }; Fonts.serif = { bitter: 'Bitter', crimsonText: 'Crimson Text', ebGaramond: 'EB Garamond', libreBaskerville: 'Libre Baskerville', lora: 'Lora', merriweather: 'Merriweather', notoSerif: 'Noto Serif', playfairDisplay: 'Playfair Display', ptSerif: 'PT Serif', }; Fonts.emojis = { /** * Twemoji emoji source that can be passed into `Font.registerEmojiSource()`. * * Emoji source GitHub project: https://github.com/twitter/twemoji * * @param size Default `72`. * @param version Version string. Default `14.0.2`. See all releases here: https://github.com/twitter/twemoji/releases */ twemoji: (size = 72, version = '14.0.2') => ({ format: 'png', url: `https://cdnjs.cloudflare.com/ajax/libs/twemoji/${version}/${size}x${size}/`, }), /** * JoyPixels emoji source that can be passed into `Font.registerEmojiSource()`. * * Emoji source GitHub project: https://github.com/joypixels/emoji-toolkit * * @param size `32` or `64`. Default `64`. * @param version Version string. Default `9.0`. See all releases here: https://github.com/joypixels/emoji-toolkit/releases */ joyPixels: (size = 64, version = '9.0') => ({ format: 'png', url: `https://cdn.jsdelivr.net/joypixels/assets/${version}/png/unicode/${size}/`, }), /** * OpenMoji Color emoji source that can be passed into `Font.registerEmojiSource()`. * * Emoji source GitHub project: https://github.com/hfg-gmuend/openmoji * * @param size `72` or `618`. Default `72`. * @param version Version string. Default `15.1.0`. See all version tags here: https://github.com/hfg-gmuend/openmoji/releases */ openMojiColor: (size = 72, version = '15.1.0') => ({ format: 'png', builder: (code) => { return `https://cdn.jsdelivr.net/gh/hfg-gmuend/openmoji@${version}/color/${size}x${size}/${code.toUpperCase()}.png`; }, }), /** * OpenMoji Black emoji source that can be passed into `Font.registerEmojiSource()`. * * Emoji source GitHub project: https://github.com/hfg-gmuend/openmoji * * @param size `72` or `618`. Default `72`. * @param version Version string. Default `15.1.0`. See all version tags here: https://github.com/hfg-gmuend/openmoji/releases */ openMojiBlack: (size = 72, version = '15.1.0') => ({ format: 'png', builder: (code) => { return `https://cdn.jsdelivr.net/gh/hfg-gmuend/openmoji@${version}/black/${size}x${size}/${code.toUpperCase()}.png`; }, }), /** * NotoEmoji emoji source that can be passed into `Font.registerEmojiSource()`. * * Emoji source GitHub project: https://github.com/googlefonts/noto-emoji * * @param size `32`, `72`, `128`, or `512`. Default `72`. * @param version Version string. Default `v2.047`. See all versions tags here: https://github.com/googlefonts/noto-emoji/releases */ notoEmoji: (size = 72, version = 'v2.047') => ({ format: 'png', builder: (code) => { return `https://cdn.jsdelivr.net/gh/googlefonts/noto-emoji@${version}/png/${size}/emoji_u${code.split('-').join('_')}.png`; }, }), }; /** * Constructs a BulkLoad object compatible with React PDF for the provided font family, specifying all font files * required for Latin support with bold and italics (if available for the font). * Pass the returned BulkLoad object to `Font.register()`. * * All supported font family names are defined in Fonts, such as `Fonts.sansSerif.roboto`. * * By default, the fonts are loaded from cdn.jsdelivr.net, allowing you to drop in * font support very quickly. However, you may want to self-host the font files at some point. As such, you can * provide the `fontsDirUrl` prop pointing to the root path where your font files are located, and the fonts will * be loaded from there instead. The expected font files for each family can be found in the * [project repo](https://github.com/justinmahar/react-pdf-builder/tree/master/public/fonts). * * Read more about [fonts in React PDF Builder here](https://justinmahar.github.io/react-pdf-builder/?path=/docs/documentation-fonts--docs). * * You can download TTF and WOFF fonts here: https://gwfh.mranftl.com/fonts * * For additional font support, see https://react-pdf.org/fonts * * @param fontFamily The name of the font family to load, defined by `Fonts`. * @param fontsDirUrl Optional. URL path where font files are located. Otherwise, fonts will be loaded from cdn.jsdelivr.net. * @returns A BulkLoad compatible with React PDF, that can be passed into `Font.register()` */ Fonts.load = (fontFamily, fontsDirUrl) => { const fontDefinition = exports.fontDefinitions.find((d) => d.family.toLowerCase() === fontFamily.toLowerCase()); if (fontDefinition) { const bulkLoad = { family: fontDefinition.family, fonts: fontDefinition.fonts.map((f) => { const src = createFontSrc(fontsDirUrl, fontDefinition, f.filename); return { src, fontStyle: f.fontStyle, fontWeight: f.fontWeight, }; }), }; return bulkLoad; } return { family: fontFamily, fonts: [] }; }; /** * To disable word hyphenation, pass this function into `Font.registerHyphenationCallback()`. * * Pass the actual function (do not call it), like so: * * ``` * Font.registerHyphenationCallback(Fonts.noHyphenation); * ``` * * Read more about [fonts in React PDF Builder here](https://justinmahar.github.io/react-pdf-builder/?path=/docs/documentation-fonts--docs). * * Read even more here: https://react-pdf.org/fonts#registerhyphenationcallback */ Fonts.noHyphenation = (word) => [word];