I basically have a text representation of an image. I'm trying to fit the font size and font height to match the size of the parent container. What I've got so far is:

body: Container(
    margin: EdgeInsets.symmetric(vertical: 40.0, horizontal: 20.0),
    width: double.infinity,
    color: Colors.black12,
    child: FittedBox(
        child: Text(
        newImage,
        style: TextStyle(
            fontFamily: 'RobotoMono',
            height: 0.7
        ),
        ),
    ),
),

Note that I am using a Monospaced font (so that all characters have the same width) and there's a line break at every 80th character.

The problem is that I need to match the height parameter so that the text fully fills the parent container (different screens will have different heights values). The bigger the height the smaller the font size will become (because of the FittedBox) => the height value indirectly affects the width of the text.

I don't mind dynamically calculating height (if there is no proper solution...) but not sure how to do that...

This is the raw string that I want to show:

################################################################################
##########################################**####################################
######################################*+    ---*+*#**###########################
################################****+-   -*-  -- ---+***########################
###############################++-   +        -----+-+*+*#######################
###########################**+--- ++-------   -- +- -  +---#####################
#######################+---   +--+-         -+    -        -####################
######################+*--   ++-+ +-+--- ---      +-     --  ###################
###################**++--  -+-- -              -  ---         ##################
###################*  ---   -+-----+*-+      *-   *--- -       +###*############
##################+-- --++---- -+ -    --                      +++-**###########
################*-   -  -- ---+-     -++- -  +                  +*#***##########
#############*++- -   +----  -+--**+-    -* -       +    -- -   -+**+*##########
##########*-+---+        --  --++      -        -          -      +-+**#*#######
############*--          -+--+*   -  +-    -+++-  -   *   +  -  -    -+-*#######
############*+ --  -    -+**--            -++          - ++      +   --+-+######
#############-        -**-+  -       --    - -         -   +-   +      + *+#####
############- -       -   +-*           -----          --    -        --- *#####
##########*#+----- --*-+- ----           +---      +          +  - +  ++-+ *####
###########*---    - +     ++---     + ---++             -           +---**+####
##########*+++-     -    --+-       +-   --       -           +          -+-####
##########-*-  -      -    -+       - - --- +-         -           +  --- +#+###
########*+-- ---     -    ---     *-+-+ --  +                 - -   - ---+ ##*##
#######+* ----  -        -- -     -*  +-           - --       ----   - --+ -####
######+* - --                --- *+-   -+           ----  -    + +-- ++- -   ###
#####++  -      - -      - ---+-- -                --+++----   +- + -+-++  +  ##
######+                  - -- -  --   -- - -      +--+++++--   -  -  ---++--  *#
#####-        -            - --   - ++-----  +-- -++++++*+++-   -    --  ++--  #
#### -         -   --   --- -- ---++-++-- --+++-+++*++****+++--  -    -   -   +#
###*-              --  --++***+++****-*+++++++++++**********+--        -      -#
###+             ++-+-++**********+**++******+*+***********++---      - -     ++
##+              -++-++************+++**********************+--+ --     ++-     
##        +-    ++*+++*****##*##******#************#********++++  --     +-- +++
##+#     + -  --+++*******#########*#######*******##*******++++++--+-    -+   -+
###-     -    -+++*********###*#########*##*#***#*#*************+-+--     --    
##*           ++++*********##################*####*###***********+++   --+*-   -
##      -     ++++**********##*######################***********++++-    --  -  
## -         --++***********######################*#************+++++--- + +- + 
#+#     - -   ++++*********#*####################*####***********+-++- --     +*
###+      -----++********#*#*########################**#*********++++----   -  -
###-       - -++++**********########################**##********+++++   -+-     
###-   -     -++++**********#####*##################************+++++- -        
##*-- -   -  -+++********#***########################**********++-+-+---  -     
###*+ -  -+ --+++********#*#########################*##*********++++-+ - -      
##+#     --  -+++*********#############*##############***********++-+- --  -    
####   -     -+++*******####*###########*#############**#*******+++-+  -       -
#*##   --    -+++***********#######*########*#######*##*********++-++-         -
####   ---   -+++********#########################**************++++--     +    
###*-  - -    -+++*********###########################**********++---+         -
###*-+ ---   -+++***********#*#####################**#**********+-----         -
####-*-      -+++**************################*##***#***********++---         *
####+#   -   --++**************#*#########*######****************+++-         -#
#####- -     --+*************#***###*#####*#*##******************+----         #
#####    -   +++**********************####*##***********#*********--+-     -   +
#####-  --   +-+********##*#***********#*************************+--+--        -
####*+       ++++***********************************************++-----        #
#####*       +++-+++++++++********+******************+-++*++++++------+        #
#####*--    --+- --+++-+ --+-++++-++++*********+*-++----+-+*++---  -+--        #
######--    +++-  -+---            ---****+----           --++--    +--    -   #
######--    ++- ---                  +*****-                  ----- ----  -    #
######--    ++++--    + -   --       -++***+        -+   - -   -------+-      -#
######-     -+--     +*-++*-#*-  -   ++-++++       -*#-*++ *-     ------   - --#
######+--   ----    +*##-+-*##*-- -- +**#***- +   +*###-+-**++    - ----   - -+#
#######-    -+-++   -*#*#*####*++*+++**###**+-***++*#####*#*+-   ------   ----+#
#######--   -+++++++-++*#**+*++++**++**###**+++**+++*******++-----+-----  ----*#
#######+-   -+++++++-++*****+**********##***+******++****+++--+*+++++--   -+-+##
########--  -+***+**+---+++++***********##**+********+----- -+*++**+--    -+-+##
########-+  -+++*****++-+-+*************#***************++++*++****++--   -+-+##
########++-  ++************************###**************+++++*+****++-    -+-###
########*+-  ++*******+*****************##**+**********************+--    ++-###
########*-+- ++**********+***********+**##*************************+--   -+--###
#########--- +++*********************+*###**+*********************++-   -+--*###
#########+----+++**********************###**+*********************+--   ++-+####
#########-++- *-+***********************##**++*******#************+--  -++++####
#########++++ +-++***************+++***###***++++**************+++--   ++++*####
#########*+++----++**************+++***###***-++**************++++--  -++++#####
##########+++++--+++*************+++***##*#**++++*************++--  - -+++-#####
##########--+------++************+*+***###******+***********++++-  -  -+++*#####
###########*##-----+++***********+*****####**+**+**********++++---   -+-+-######
##############------++*****************###***++++**********+++---   --##########
##############-------++**********+++***###**+++++********+++---- --  *##########
##############-----+-+++*********--++******++--++**********++------  ###########
##############------++++*********  --+****+-    +********++++-- ---  ###########
##############+-----++++*********-   --+--      +********+++++------ ###########
##############*--  -+++++********+              +********+*+++- --- -###########
###############+----++++**********--           +*********++++------ -###########
###############-- -  +++++********+-          -*********++++- --+-- *###########
############### --+ -+++++********+ -     - ---++***+****++++- +--  ############
###############* -- --++*********----- -   +- ---+*******++++- --  -############
################ -- -++++***+*+*+*-+--++- -++----+-***+**++++- --  *############
################+ -  --+**+***--*-+ ++-- +-+-+-+-+-+*+-++*++-- --  #############
#################-----+++*+++--*----+*--++-++-+- *++++-+-*+-- --  +#############
#################*---+++++ +--+-*-+---+-  -+*++++++++----*+++  -  ##############
##################-  -+++ --++  -++-+-*+-- **++--* ++-- -+---  -- ##############
##################- - ++++----  +++*-+++++**+**+++---   --++-     ##############
#################*  ----+--  - - ---*-***+*+-        -  - +-+     ##############
################*-   -+++---            -+         - - -++-----   -#############
###############* +  --*-++----****+****+--+*******++++- -+-       -*############
##############*  -   - -+++*++******##*#*###**#***++*++--+-  -    - ############
#############*  --- -  ----++*********************+*+++ -+-       -  ###########
#############   -+-     ---+*+++++**+*+++++**+**+**+++-+--        --  ##########
############    ++-      -++++-++++++-+- ---++++-++++-----        --   #########
###########     ++-      - ---++  ---+   +  -------- ----         --    ########
#########*      +++      - +----- +    - -        ----     -      --     #######
#######-        +++       -  -- - -- -            - - ---         +-      ######
####*           +++-          -- --     -++-----+-- - ---        -+-       #####
##-             -+++      *-++ +--+--+++*++++***+++- + +-        ++-        ####
                -+++     --+-- --+++*+**+*+*+****+-- -+--        ++-          *#
                --++-       +-+++**+********#****+-+ -          -++-            
                 -+++     - -+*+-*#*+****++****+++------        +++             
                 -+*+        -+++*++++*+*++**++-+----          -++-             
                 -+**       -++++-----++++-**++-++++--         +++-             
                 -+++-       --*++--+++-+-+--------+--        -+++-             
                  ++*-        --++- +----+--+--  --+          +++--             
                  -+*--        - -  - --+--+---  -           -+*+--             
                   +*++             - ---  - - -             +++--              
                   +**++                                    -+**--              
                   +**+*                                    ++**+-              
                   +**++-                                  ++***+-              
                   +****-                                 -+****-                


Solution 1: Martin

To answer my own question, there is no need to manually calculate the text height. Instead, just use:

FittedBox(
    fit: BoxFit.fill,
    child: Text(
        text,
        style: TextStyle(
                fontFamily: 'RobotoMono',
                color: Colors.white,
        ),
    ),
);