C struct types have a fixed size (except possibly for their last field). The OP's record format is variable-width.
At a glance, one might think this module useless, but the module goes beyond the ability to handle C structs. It provides the ability to do length-prefixed fields, and it provides the ability to use custom packing and unpacking routines on a per-field basis. The former doesn't help, but the latter (called "hooks") could maybe handle the text fields.
Update: I tried, and I don't think it's possible using this module.