John-
If by rendering you mean handling codes in the data to control the
printer beyond the simple task of printing characters, then I didn't
need to do much as you observed.
Here is the character filtering I used:
if(chr==0x0D({Serial.write(0x0D);Serial.write(0x0A);};
if(chr>=0x20 && chr<0x80) Serial.write(chr);
I looked at a lot of text M100 printer output as hex bytes and didn't
see anything other than CR-- No TAB, LF, FF, or Esc seqs.- LFs were
omitted; TABs were simulated with spaces; FF were done by inserting a
number of blank lines.
Of course, any programs that produce special characters or graphics for
a specific printer would be another matter.
George