Juliomar, bom dia.
Encontrei o problema. A chamada FiltrarTextoXML na unit pcnAuxiliar, está passando o valor ";" como default para o parâmetro QuebraLinha.
function FiltrarTextoXML(const RetirarEspacos: boolean; aTexto: String; RetirarAcentos: boolean = True; SubstituirQuebrasLinha: Boolean = True; const QuebraLinha: String = ';'): String;
A chamada dessa função é na unit pcnGerador e ela não informava nenhum valor para este campo, portanto, ele sempre utilizava ';' para a quebra das linhas.
ATag := '<' + tag + Atributo + '>' +
FiltrarTextoXML(FOpcoes.FRetirarEspacos, ConteudoProcessado, FOpcoes.FRetirarAcentos) +
'</' + tag + '>'
Eu alterei a unit pnfsNFSeW_SP para passar o o parâmetro QuebraLinha: (Linha 255)
Gerador.Opcoes.QuebraLinha := FQuebradeLinha;
E alterei a unit pcnGerador para passar este parâmetro para a função: (Linha 677)
ATag := '<' + tag + Atributo + '>' +
FiltrarTextoXML(FOpcoes.FRetirarEspacos, ConteudoProcessado, FOpcoes.FRetirarAcentos, True, FOpcoes.FQuebraLinha) +
'</' + tag + '>'
Seguem as 2 units para sua avaliação e posterior subida ao SVN, caso estejam corretas.
Desde já agradeço a sua atenção.
Abraços.
Rogério
pcnGerador.pas
pnfsNFSeW_SP.pas