The length fields for PolyText16 and ImageText16 represent the number of 16-bit characters in the request but PrintString16() and PrintTString16() treat the lengths as the number of octets in the string - thus printing only half of the characters.