Scaling fonts with an AffineTransform

I’m working on a roguelike just for fun, using unicode chars. I want to use the from the block elements page in particular to build dungeon maps:

the range is U+2596 to U+259F

I know that all characters in this range have the same size so i thought it would be possible to create a 1point size monospaced font (which has the above unicode chars) and then use the deriveFont method in the Font class with an AffineTransform to transform the font to the desirable size in pixels (for example 16 pixels, squared).

The problems i have:

  • how to create the affine transform to obtain a font whose bounds match the pixel size?
  • characters have non zero descent, how to change the descent to become 0 and put the origin of each character at the lower left corner?
  • it’s weird but block characters from the monospaced font aren’t squares, they are slightly taller, how to determine this aspect ratio to fix it?
  • the glyph edges are being anti-aliasied even set rendering hints to no anti-aliasing

Any clues? Thanks in advance.

PS: It looks like on my MacBook the screen resolution is 112dpi and the screen size is 1280x800 (using an LCD).