Consegui resolver da seguinte forma:
inclui a unit JclSysUtils da JVCL, ela possui a seguinte função : { TODO -cHelp : RawOutput: Do not process isolated carriage returns (#13). That is, for RawOutput = False, lines not terminated by a line feed (#10) are deleted from Output. } function Execute(const CommandLine: string; var Output: string; RawOutput: Boolean = False; AbortPtr: PBoolean = nil): Cardinal; begin Result := InternalExecute(CommandLine, Output, nil, RawOutput, AbortPtr); end; e ultilizando mais uma função de apoio: procedure ShowPasDocMessage(const Text: string); const Misspell = 'Warning[2]: Word misspelled "'; var MisspellLength : integer; WrongWord: string; begin MisspellLength := Length(Misspell); MemoLog.Lines.Add(Text); if Pos(Misspell, Text) = 1 then begin WrongWord := Copy(Text, MisspellLength+1, MAXINT); if Length(WrongWord) > 0 then begin SetLength(WrongWord, Length(WrongWord)-1); // MisspelledWords.Add(WrongWord); end; end; Application.ProcessMessages; end; Consegui capturar a saída gerada pelo pasdoc. Execute(exe + ' ' +parametros,ShowPasDocMessage ); Obrigado pela atenção. [As partes desta mensagem que não continham texto foram removidas]