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