Issue with converting the Base64String to ZPL command

We have the Label in Base64String format stored in our DB/Table. Please refer “Base64String_LabelData.Txt” in the attachment.
We are converting this Base64 string to a ZPL command (by first converting Base64 string to a monochrome/.bmp Image, and then converting that image to the ZPL command).
Please refer “ZPLCommand_LabelData.txt” for the ZPL command output. You can paste that in online ZPL viewer.

I have validated the ZPL command in the Online ZPL Viewer: http://labelary.com/viewer.html and this works fine.
Another word document “.NET code to convert the BMP Monochrome to ZPL command.txt” contains the .NET C# code which we used to convert from “BMP /Monochrome” to ZPL command.

Below are the challenges which we have currently.

1. The current ZPL output file is around 248KB which is way larger than our input file, and is causing performance issues when sent to Zebra printer.
Is there a way we can generate the file of lesser size by using some compression technique?
2. Other than this label, we are appending additional fields to the lower section in the label. Once I try this in the ZPL viewer, the text is getting added but is inverted.
Please refer OnlineZPLViewer_Output.jpg in the attached.
3. Once we validate this data in ZPL viewer, able to see the label but when we actually send this label to the Zebra printer, nothing is coming out from the printer.

And we have ZT230 model of Zebra printer.

Can you please help me, how can I convert the base64String to Zebra printing Language command ?