That's pretty much right, except that your test for non-blank should be on 005DH, i.e. 005CH+1. The first byte of an FCB is the drive code, then the 11-char filename/type.
I skipped a bunch of details - not sure how familiar you are with BDOS calls. 0080H is the default "DMA address" to use for file transfers. You can set it to some other memory address if you want (must be 128-bytes of "free" memory). If OPEN returns success, then READ calls are used to fill 0080H 128 bytes at a time. A "text" file in CP/M is defined as ending with a Ctrl-Z character, although technically an EOF from READ should be treated the same. So, you loop while READ returns "success" and send each byte in 0080H to your printer device, until you hit Ctrl-Z. CLOSE is actually optional if you never write the file, but it is the "correct" thing to do. If this were MP/M, you really should call CLOSE. Of course, the details of the coed are more complicated than described here - especially when using assembly.