The way we do it is with an RFC that returns a Binary String. Then the .NET code simply writes the binary data to the HttpResponse.
Response.Clear()
Response.ClearContent()
Response.ClearHeaders()
Response.ContentType = String.Format("application/pdf; filename=""{0}.pdf""", docNumber)
Response.BinaryWrite(obj_pdf)
I will try and locate a sample of the ABAP-side, too