Could it be blf.word_wrap is not working cause the constant is changed accidantly?
Can someone confirm word_warp is working in 2.78, i would make a bug report.
Use blf.enable(blf.WORD_WRAP) to enable wrap. Needed for recognizing "\n".
Use blf.word_wrap(fontid, px) for automatic wrapping of long strings (the above must be enabled).
Disable the wrapping at the end of drawing with blf.disable(blf.WORD_WRAP).
st_1 = "Line 1\nLine 2\n\nLine 4\n"
st_2 = """
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."""
blf.enable(1, blf.WORD_WRAP)
blf.color(1, 1, 1, 1, 1)
blf.position(1, 20, 500, 0)
blf.word_wrap(1, 300) # pixels
blf.draw(1, st_1 + st_2)
blf.disable(1, blf.WORD_WRAP)
Oh wow, there’s a BLF effect for that! that’s good to know.
Like @kaio explained, you’re supposed to enable that with blf.enable(constant) for the effect to work, the same way you do with the other effects (blf.SHADOW, blf.ROTATION etc.).