C++ usage

This library implement a subset of Figlet capability, i.e. print large letters out of ordinary text

      _ _ _          _   _     _
     | (_) | _____  | |_| |__ (_)___
     | | | |/ / _ \ | __| '_ \| / __|
     | | |   <  __/ | |_| | | | \__ \_
     |_|_|_|\_\___|  \__|_| |_|_|___(_)

Differently of standard FIGlet command (http://www.figlet.org/) this print can be done inside a user program using run time generated string as follows

   #include "Figlet.hh"
   #include <sstream>
   using namespace std;

   int
   main() {
     Figlet::standard.print("Fractions");
     for ( int i = 2; i <= 4; ++i ) {
       ostringstream ss;
       ss << "5/" << i << " = " << 5.0/i;
       Figlet::small.print(ss.str().c_str());
     }
     cout << "ALL DONE!\n";
     return 0;
   }

which output is the following

      _____               _   _
     |  ___| __ __ _  ___| |_(_) ___  _ __  ___
     | |_ | '__/ _` |/ __| __| |/ _ \| '_ \/ __|
     |  _|| | | (_| | (__| |_| | (_) | | | \__ \
     |_|  |_|  \__,_|\___|\__|_|\___/|_| |_|___/

      ___   _____         ___   ___
     | __| / /_  )  ___  |_  ) | __|
     |__ \/ / / /  |___|  / / _|__ \
     |___/_/ /___| |___| /___(_)___/

      ___   ______        _    __  __  __  ______
     | __| / /__ /  ___  / |  / / / / / / / /__  |
     |__ \/ / |_ \ |___| | |_/ _ Y _ Y _ Y _ \/ /
     |___/_/ |___/ |___| |_(_)___|___|___|___/_/

      ___   ___ _          _   ___ ___
     | __| / / | |   ___  / | |_  ) __|
     |__ \/ /|_  _| |___| | |_ / /|__ \
     |___/_/   |_|  |___| |_(_)___|___/

No initialization files are necessary. The fonts are hardware embedded in the library.

  • banner

  • big

  • doom

  • larry3d

  • mini

  • script

  • small

  • standard

  • straight

A simple ruby script permits to convert figlet .flf files to structures which can be embedded in the library.

Available printing mode

Only four mode of print the same string:

Printing mode

  • FIGLET_SMUSHED

  • standard way of figlet print

  • FIGLET_PACKED

  • letters are moved left but no overlappingare permitted

  • FIGLET_FULLWIDTH

  • letters are printed at width defined in thefont

  • FIGLET_MONOSPACED

  • letters are printed with equal width

The effect are the following

      ____                      _              _
     / ___| _ __ ___  _   _ ___| |__   ___  __| |
     \___ \| '_ ` _ \| | | / __| '_ \ / _ \/ _` |
      ___) | | | | | | |_| \__ \ | | |  __/ (_| |
     |____/|_| |_| |_|\__,_|___/_| |_|\___|\__,_|
      ____               _              _
     |  _ \  __ _   ___ | | __ ___   __| |
     | |_) |/ _` | / __|| |/ // _ \ / _` |
     |  __/| (_| || (__ |   <|  __/| (_| |
     |_|    \__,_| \___||_|\_\\___| \__,_|
      _____           _   _  __        __  _       _   _     _
     |  ___|  _   _  | | | | \ \      / / (_)   __| | | |_  | |__
     | |_    | | | | | | | |  \ \ /\ / /  | |  / _` | | __| | '_ \
     |  _|   | |_| | | | | |   \ V  V /   | | | (_| | | |_  | | | |
     |_|      \__,_| |_| |_|    \_/\_/    |_|  \__,_|  \__| |_| |_|
      __  __                                                                       _
     |  \/  |   ___    _ __     ___     ___    _ __     __ _     ___     ___    __| |
     | |\/| |  / _ \  | '_ \   / _ \   / __|  | '_ \   / _` |   / __|   / _ \  / _` |
     | |  | | | (_) | | | | | | (_) |  \__ \  | |_) | | (_| |  | (__   |  __/ | (_| |
     |_|  |_|  \___/  |_| |_|  \___/   |___/  | .__/   \__,_|   \___|   \___|  \__,_|
                                              |_|

Available framing mode

Only two framing are available:

Framing mode

  • FIGLET_SINGLE

  • single frame around a string

  • FIGLET_DOUBLE

  • double frame around a string

The effect are the following

     Figlet::small.printFramed("SINGLE",cout,Figlet::FIGLET_SINGLE);
     +------------------------------+
     |  ___ ___ _  _  ___ _    ___  |
     | / __|_ _| \| |/ __| |  | __| |
     | \__ \| || .` | (_ | |__| _|  |
     | |___/___|_|\_|\___|____|___| |
     |                              |
     +------------------------------+

and

     Figlet::small.printFramed("DOUBLE",cout,Figlet::FIGLET_DOUBLE);
     @=================================@
     #  ___   ___  _   _ ___ _    ___  #
     # |   \ / _ \| | | | _ ) |  | __| #
     # | |) | (_) | |_| | _ \ |__| _|  #
     # |___/ \___/ \___/|___/____|___| #
     #                                 #
     @=================================@

Compile and test

Edit makefile file to match compiler of your OS and do:

  make

To run the test

  make run

or use rakefile

  # on linux os
  rake build_linux

  # on mac
  rake build_osx

  # on windows
  rake build_win