A method of rendering a glyph to make the glyph more readable, comprising: receiving a glyph associated with a font, the glyph to be rendered at a size and having one or more strokes, including one or more horizontal or vertical strokes; calculating an initial adjustment value for a stroke width of the glyph, wherein calculating an initial adjustment value comprises: determining a standard stem width for the font, calculating a scaled stem width from the standard stem width and the size, and determining an initial adjustment value based on the scaled stem width; determining an offset amount based on the initial adjustment value such that a minimum number of device pixels will be marked by the one or more horizontal or vertical strokes after adjusting the density values of one or more device pixels representing the glyph; rendering a high resolution representation of the glyph so that one or more edges of at least one stroke is offset from a device resolution grid by the offset amount, the high resolution representation representing a set of device pixels each having an initial density value, and the high resolution representation being a bitmap representation with higher resolution than the device resolution; for one or more of the device pixels in the set of device pixels, calculating a length of an edge of a stroke that passes through the device pixel, wherein calculating a length of an edge of a stroke that passes through a device pixel comprises: identifying initial adjustment pixels along the edges of the high resolution bitmap representation of the glyph, the initial adjustment pixels being high resolution pixels representative of the initial adjustment value, wherein the length of the edge of a stroke that passes through a device pixel is a ratio of the number of initial adjustment pixels in a direction to a grid ratio in said direction, the grid ratio being a ratio between the number of high resolution pixels and the device pixels in a certain direction; and adjusting the density values of the one or more device pixels by a final adjustment value based on the initial adjustment value and the length of an edge of a stroke passing through the device pixel. receiving a glyph associated with a font, the glyph to be rendered at a size and having one or more strokes, including one or more horizontal or vertical strokes; calculating an initial adjustment value for a stroke width of the glyph, wherein calculating an initial adjustment value comprises: determining a standard stem width for the font, calculating a scaled stem width from the standard stem width and the size, and determining an initial adjustment value based on the scaled stem width; determining a standard stem width for the font, calculating a scaled stem width from the standard stem width and the size, and determining an initial adjustment value based on the scaled stem width; determining an offset amount based on the initial adjustment value such that a minimum number of device pixels will be marked by the one or more horizontal or vertical strokes after adjusting the density values of one or more device pixels representing the glyph; rendering a high resolution representation of the glyph so that one or more edges of at least one stroke is offset from a device resolution grid by the offset amount, the high resolution representation representing a set of device pixels each having an initial density value, and the high resolution representation being a bitmap representation with higher resolution than the device resolution; for one or more of the device pixels in the set of device pixels, calculating a length of an edge of a stroke that passes through the device pixel, wherein calculating a length of an edge of a stroke that passes through a device pixel comprises: identifying initial adjustment pixels along the edges of the high resolution bitmap representation of the glyph, the initial adjustment pixels being high resolution pixels representative of the initial adjustment value, wherein the length of the edge of a stroke that passes through a device pixel is a ratio of the number of initial adjustment pixels in a direction to a grid ratio in said direction, the grid ratio being a ratio between the number of high resolution pixels and the device pixels in a certain direction; and identifying initial adjustment pixels along the edges of the high resolution bitmap representation of the glyph, the initial adjustment pixels being high resolution pixels representative of the initial adjustment value, wherein the length of the edge of a stroke that passes through a device pixel is a ratio of the number of initial adjustment pixels in a direction to a grid ratio in said direction, the grid ratio being a ratio between the number of high resolution pixels and the device pixels in a certain direction; and adjusting the density values of the one or more device pixels by a final adjustment value based on the initial adjustment value and the length of an edge of a stroke passing through the device pixel.