Hola:
Supongo, que deberías intentar interpretar el siginficado de cada linea, ya que de lo contrario cuando quieras imprimir algo mas vas a tener otros problemas.
Supongo que alguna de las secuencias le está produciendo un avance de linea y esto debe ser lo que le sobra antes y le falta después, en mi ignorancia, yo intentaría tal vez algo así, porque por ahí deben andar los tiros:
strLinea = "^XA"
strLinea = strLinea & "^FO40,30"
strLinea = strLinea & "^ADN,42,14"
strLinea = strLinea & "^FDKLARO PLEDGE BLANCA 900 ML ^FS"
strLinea = strLinea & "^FO100,80"
strLinea = strLinea & "^ADN,42,14"
strLinea = strLinea & "^FD2,752.00^FS"
strLinea = strLinea & "^XZ"
Lo que he cambiado de sitio como ves es el "^XZ" pero tal vez pudiera tener algo que ver tambien el ^FS. aunque esto ultimo podría tambien ser el final de la secuencia anterior, probablemente a la vista de lo que te imnprime tu veas mas claro lo que hace cada uno ya que por ejemplo, suponiendo que la instruccion de arriba "^FO40,30" sea un posicionamiento en Fila/Columna, logicamente no se estaria posicionando en la misma zona la otra instruccion "^FO100,80"
No se me ocurre nada mas, es una idea que espero te sirva.
Saludos
Pd: En otro caso he encontrado en .NET algo que te puede servir, en
este enlace de zpl