Draws text on screen. If no [[Font]] is set, one will be created and set (once) if needed.

As of LOVE [[0.7.1]], when using translation and scaling functions while drawing text, this function assumes the scale occurs first.  If you don't script with this in mind, the text won't be in the right position, or possibly even on screen.

[[love.graphics.print]] and [[love.graphics.printf]] both support UTF-8 encoding. You'll also need a proper [[Font]] for special characters.

In versions prior to [[11.0]], color and byte component values were within the range of 0 to 255 instead of 0 to 1.

{{notice|Text may appear blurry if it's rendered at non-integer pixel locations.}}
== Function ==
=== Synopsis ===
<source lang="lua">
love.graphics.print( text, x, y, r, sx, sy, ox, oy, kx, ky )
</source>
=== Arguments ===
{{param|string|text|The text to draw.}}
{{param|number|x (0)|The position to draw the object (x-axis).}}
{{param|number|y (0)|The position to draw the object (y-axis).}}
{{param|number|r (0)|Orientation (radians).}}
{{param|number|sx (1)|Scale factor (x-axis).}}
{{param|number|sy (sx)|Scale factor (y-axis).}}
{{param|number|ox (0)|Origin offset (x-axis).}}
{{param|number|oy (0)|Origin offset (y-axis).}}
{{New feature|0.8.0|
{{param|number|kx (0)|Shearing factor (x-axis).}}
{{param|number|ky (0)|Shearing factor (y-axis).}}
|080}}
=== Returns ===
Nothing.

== Function ==
{{newin|[[0.10.0]]|100|type=variant}}
=== Synopsis ===
<source lang="lua">
love.graphics.print( coloredtext, x, y, angle, sx, sy, ox, oy, kx, ky )
</source>
=== Arguments ===
{{param|table|coloredtext|A table containing colors and strings to add to the object, in the form of <code>{color1, string1, color2, string2, ...}</code>.}}
{{subparam|table|color1|A table containing red, green, blue, and optional alpha components to use as a color for the next string in the table, in the form of <code>{red, green, blue, alpha}</code>.}}
{{subparam|string|string1|A string of text which has a color specified by the previous color.}}
{{subparam|table|color2|A table containing red, green, blue, and optional alpha components to use as a color for the next string in the table, in the form of <code>{red, green, blue, alpha}</code>.}}
{{subparam|string|string2|A string of text which has a color specified by the previous color.}}
{{subparam|tables and strings|...|Additional colors and strings.}}
{{param|number|x (0)|The position of the text on the x-axis.}}
{{param|number|y (0)|The position of the text on the y-axis.}}
{{param|number|angle (0)|The orientation of the text in radians.}}
{{param|number|sx (1)|Scale factor on the x-axis.}}
{{param|number|sy (sx)|Scale factor on the y-axis.}}
{{param|number|ox (0)|Origin offset on the x-axis.}}
{{param|number|oy (0)|Origin offset on the y-axis.}}
{{param|number|kx (0)|Shearing / skew factor on the x-axis.}}
{{param|number|ky (0)|Shearing / skew factor on the y-axis.}}
=== Returns ===
Nothing.
=== Notes ===
The color set by [[love.graphics.setColor]] will be combined (multiplied) with the colors of the text.

== Function ==
{{newin|[[11.0]]|110|type=variant}}
=== Synopsis ===
<source lang="lua">
love.graphics.print( text, transform )
</source>
=== Arguments ===
{{param|string|text|The text to draw.}}
{{param|Transform|transform|Transformation object.}}
=== Returns ===
Nothing.

== Function ==
{{newin|[[11.0]]|110|type=variant}}
=== Synopsis ===
<source lang="lua">
love.graphics.print( coloredtext, transform )
</source>
=== Arguments ===
{{param|table|coloredtext|A table containing colors and strings to add to the object, in the form of <code>{color1, string1, color2, string2, ...}</code>.}}
{{subparam|table|color1|A table containing red, green, blue, and optional alpha components to use as a color for the next string in the table, in the form of <code>{red, green, blue, alpha}</code>.}}
{{subparam|string|string1|A string of text which has a color specified by the previous color.}}
{{subparam|table|color2|A table containing red, green, blue, and optional alpha components to use as a color for the next string in the table, in the form of <code>{red, green, blue, alpha}</code>.}}
{{subparam|string|string2|A string of text which has a color specified by the previous color.}}
{{subparam|tables and strings|...|Additional colors and strings.}}
{{param|Transform|transform|Transformation object.}}
=== Returns ===
Nothing.
=== Notes ===
The color set by [[love.graphics.setColor]] will be combined (multiplied) with the colors of the text.

== Function ==
{{newin|[[11.0]]|110|type=variant}}
=== Synopsis ===
<source lang="lua">
love.graphics.print( text, font, transform )
</source>
=== Arguments ===
{{param|string|text|The text to draw.}}
{{param|Font|font|The Font object to use.}}
{{param|Transform|transform|Transformation object.}}
=== Returns ===
Nothing.

== Function ==
{{newin|[[11.0]]|110|type=variant}}
=== Synopsis ===
<source lang="lua">
love.graphics.print( coloredtext, font, transform )
</source>
=== Arguments ===
{{param|table|coloredtext|A table containing colors and strings to add to the object, in the form of <code>{color1, string1, color2, string2, ...}</code>.}}
{{subparam|table|color1|A table containing red, green, blue, and optional alpha components to use as a color for the next string in the table, in the form of <code>{red, green, blue, alpha}</code>.}}
{{subparam|string|string1|A string of text which has a color specified by the previous color.}}
{{subparam|table|color2|A table containing red, green, blue, and optional alpha components to use as a color for the next string in the table, in the form of <code>{red, green, blue, alpha}</code>.}}
{{subparam|string|string2|A string of text which has a color specified by the previous color.}}
{{subparam|tables and strings|...|Additional colors and strings.}}
{{param|Font|font|The Font object to use.}}
{{param|Transform|transform|Transformation object.}}
=== Returns ===
Nothing.
=== Notes ===
The color set by [[love.graphics.setColor]] will be combined (multiplied) with the colors of the text.

== Examples ==
=== A lame example ===
<source lang="lua">
function love.draw()
    love.graphics.setColor(0, 1, 0, 1)
    love.graphics.print("This is a pretty lame example.", 10, 200)
    love.graphics.setColor(1, 0, 0, 1)
    love.graphics.print("This lame example is twice as big.", 10, 250, 0, 2, 2)
    love.graphics.setColor(0, 0, 1, 1)
    love.graphics.print("This example is lamely vertical.", 300, 30, math.pi/2)
end
</source>
== Notes ==
In version 0.8.0 and older, love.graphics.print stops at the first '\0' (null) character. This can bite you if you are appending keystrokes to form your string, as some of those are multi-byte unicode characters which will likely contain null bytes.
== See Also ==
* [[parent::love.graphics]]
* [[love.graphics.printf]]
[[Category:Functions]]
[[Sub-Category::Drawing| ]]
{{#set:Description=Draws text on screen. If no Font is set, one will be created and set (once) if needed.}}
{{#set:Since=000}}
== Other Languages ==
{{i18n|love.graphics.print}}