JavaScript Program to Print with your Own Font
JavaScript allows us to print text with your font that utilizes your custom fonts. We would do some logical stuff to create a font. For the user input, the given code will print in the designed font.
Example:
Input: ROOT
Output:
. .######. .
. .# . . . . #. .
. .# . ## . . .
. .# . . . #. . .
. .# . . . . #. .
. . ###### . .
. . # . . . . # . .
. . # . . . . # . .
. . # . . . . # . .
. . ###### . .
. . ###### . .
. . # . . . . # . .
. . # . . . . # . .
. . # . . . . # . .
. . ###### . .
. . ###### . .
. . . . ## . . . .
. . . . ## . . . .
. . . . ## . . . .
. . . . ## . . . .
JavaScript program to print with your own font
Example: To demonstrate printing our own font using JavaScript.
let name = "Geek"
let result = '';
for (let x = 0; x < name.length; x++) {
let c = name[x].toUpperCase();
switch (c) {
case 'A':
result +=
'..######..\n' +
'..#....#..\n' +
'..######..\n' +
'..#....#..\n' +
'..#....#..\n\n';
break;
case 'B':
result +=
'..######..\n' +
'..#....#..\n' +
'..#####...\n' +
'..#....#..\n' +
'..######..\n\n';
break;
case 'C':
result +=
'..######..\n' +
'..#.......\n' +
'..#.......\n' +
'..#.......\n' +
'..######..\n\n';
break;
case 'D':
result +=
'..#####...\n' +
'..#....#..\n' +
'..#....#..\n' +
'..#....#..\n' +
'..#####...\n\n';
break;
case 'E':
result +=
'..######..\n' +
'..#.......\n' +
'..#####...\n' +
'..#.......\n' +
'..######..\n\n';
break;
case 'F':
result +=
'..######..\n' +
'..#.......\n' +
'..#####...\n' +
'..#.......\n' +
'..#.......\n\n';
break;
case 'G':
result +=
'..######..\n' +
'..#.......\n' +
'..#.####..\n' +
'..#....#..\n' +
'..#####...\n\n';
break;
case 'H':
result +=
'..#....#..\n' +
'..#....#..\n' +
'..######..\n' +
'..#....#..\n' +
'..#....#..\n\n';
break;
case 'I':
result +=
'..######..\n' +
'....##....\n' +
'....##....\n' +
'....##....\n' +
'..######..\n\n';
break;
case 'J':
result +=
'..######..\n' +
'....##....\n' +
'....##....\n' +
'..#.##....\n' +
'..####....\n\n';
break;
case 'K':
result +=
'..#...#...\n' +
'..#..#....\n' +
'..##......\n' +
'..#..#....\n' +
'..#...#...\n\n';
break;
case 'L':
result +=
'..#.......\n' +
'..#.......\n' +
'..#.......\n' +
'..#.......\n' +
'..######..\n\n';
break;
case 'M':
result +=
'..#....#..\n' +
'..##..##..\n' +
'..#.##.#..\n' +
'..#....#..\n' +
'..#....#..\n\n';
break;
case 'N':
result +=
'..#....#..\n' +
'..##...#..\n' +
'..#.#..#..\n' +
'..#..#.#..\n' +
'..#...##..\n\n';
break;
case 'O':
result +=
'..######..\n' +
'..#....#..\n' +
'..#....#..\n' +
'..#....#..\n' +
'..######..\n\n';
break;
case 'P':
result +=
'..######..\n' +
'..#....#..\n' +
'..######..\n' +
'..#.......\n' +
'..#.......\n\n';
break;
case 'Q':
result +=
'..######..\n' +
'..#....#..\n' +
'..#.#..#..\n' +
'..#..#.#..\n' +
'..######..\n\n';
break;
case 'R':
result +=
'..######..\n' +
'..#....#..\n' +
'..#.##...\n' +
'..#...#...\n' +
'..#....#..\n\n';
break;
case 'S':
result +=
'..######..\n' +
'..#.......\n' +
'..######..\n' +
'.......#..\n' +
'..######..\n\n';
break;
case 'T':
result +=
'..######..\n' +
'....##....\n' +
'....##....\n' +
'....##....\n' +
'....##....\n\n';
break;
case 'U':
result +=
'..#....#..\n' +
'..#....#..\n' +
'..#....#..\n' +
'..#....#..\n' +
'..######..\n\n';
break;
case 'V':
result +=
'..#....#..\n' +
'..#....#..\n' +
'..#....#..\n' +
'...#..#...\n' +
'....##....\n\n';
break;
case 'W':
result +=
'..#....#..\n' +
'..#....#..\n' +
'..#.##.#..\n' +
'..##..##..\n' +
'..#....#..\n\n';
break;
case 'X':
result +=
'..#....#..\n' +
'...#..#...\n' +
'....##....\n' +
'...#..#...\n' +
'..#....#..\n\n';
break;
case 'Y':
result +=
'..#....#..\n' +
'...#..#...\n' +
'....##....\n' +
'....##....\n' +
'....##....\n\n';
break;
case 'Z':
result +=
'..######..\n' +
'......#...\n' +
'.....#....\n' +
'....#.....\n' +
'..######..\n\n';
break;
case ' ':
result +=
'..........\n' +
'..........\n' +
'..........\n' +
'..........\n' +
'..........\n\n';
break;
case '.':
result += '----..----\n\n';
break;
default:
break;
}
}
// Displaying the stylized font output
console.log(result);
Output
..######.. ..#....... ..#.####.. ..#....#.. ..#####... ..######.. ..#....... ..#####... ..#....... ..######.. ..######.. ..#....... ..#####... ..#....... ..######.. ..#...#... ..#..#.... ..##.........
Time complexity: O(n) where n is the length of the input string name.
Space complexity: O(1).
JavaScript program to print with your own font using an object
An alternative approach to achieve the same result without using a switch statement for each character individually is to create a lookup object where each key represents a character and its corresponding value represents the stylized font.
Example: Create ASCII Art from Text Using Custom Fonts.
let name = "Geek";
let result = '';
const fontLookup = {
'A': '..######..\n..#....#..\n..######..\n..#....#..\n..#....#..\n\n',
'B': '..######..\n..#....#..\n..#####...\n..#....#..\n..######..\n\n',
'C': '..######..\n..#.......\n..#.......\n..#.......\n..######..\n\n',
'D': '..#####...\n..#....#..\n..#....#..\n..#....#..\n..#####...\n\n',
'E': '..######..\n..#.......\n..#####...\n..#.......\n..######..\n\n',
'F': '..######..\n..#.......\n..#####...\n..#.......\n..#.......\n\n',
'G': '..######..\n..#.......\n..#.####..\n..#....#..\n..#####...\n\n',
'H': '..#....#..\n..#....#..\n..######..\n..#....#..\n..#....#..\n\n',
'I': '..######..\n....##....\n....##....\n....##....\n..######..\n\n',
'J': '..######..\n....##....\n....##....\n..#.##....\n..####....\n\n',
'K': '..#...#...\n..#..#....\n..##......\n..#..#....\n..#...#...\n\n',
'L': '..#.......\n..#.......\n..#.......\n..#.......\n..######..\n\n',
'M': '..#....#..\n..##..##..\n..#.##.#..\n..#....#..\n..#....#..\n\n',
'N': '..#....#..\n..##...#..\n..#.#..#..\n..#..#.#..\n..#...##..\n\n',
'O': '..######..\n..#....#..\n..#....#..\n..#....#..\n..######..\n\n',
'P': '..######..\n..#....#..\n..######..\n..#.......\n..#.......\n\n',
'Q': '..######..\n..#....#..\n..#.#..#..\n..#..#.#..\n..######..\n\n',
'R': '..######..\n..#....#..\n..#.##...\n..#...#...\n..#....#..\n\n',
'S': '..######..\n..#.......\n..######..\n.......#..\n..######..\n\n',
'T': '..######..\n....##....\n....##....\n....##....\n....##....\n\n',
'U': '..#....#..\n..#....#..\n..#....#..\n..#....#..\n..######..\n\n',
'V': '..#....#..\n..#....#..\n..#....#..\n...#..#...\n....##....\n\n',
'W': '..#....#..\n..#....#..\n..#.##.#..\n..##..##..\n..#....#..\n\n',
'X': '..#....#..\n...#..#...\n....##....\n...#..#...\n..#....#..\n\n',
'Y': '..#....#..\n...#..#...\n....##....\n....##....\n....##....\n\n',
'Z': '..######..\n......#...\n.....#....\n....#.....\n..######..\n\n',
' ': '..........\n..........\n..........\n..........\n..........\n\n',
'.': '----..----\n\n'
};
for (let x = 0; x < name.length; x++) {
let c = name[x].toUpperCase();
result += fontLookup[c] || '';
}
console.log(result);
Output
..######.. ..#....... ..#.####.. ..#....#.. ..#####... ..######.. ..#....... ..#####... ..#....... ..######.. ..######.. ..#....... ..#####... ..#....... ..######.. ..#...#... ..#..#.... ..##.........
Time complexity: O(n) where n is the length of the input string name.
Space complexity: O(1).
Contact Us