I’m not clear if you want automated printing, or printing via user email intervention.
In the first case, there’s no rule that says a web page can only submit data back to the server that hosts it. You can serve up the page from A and have the form submission go to B. Just use a server side process to send the data to the printer.
In the second case, if you want the user to be able to print the HTML form exactly as it appears, then you can either a) print from a captured page using a web browser, or b) print from email.
a). When the form’s submitted, save the form data server side and report back an ID to the user. Provide a second page that accepts that ID, and that recalls the form with the filled in data in place. Then the user can chooseFile|Print.
b). Just make sure the user’s email (Messenger) preferences include ‘view HTML pages as HTML’ and then choose File|Print.
It sounds like your platform is windows. Why can’t the printer at B be exposed to all locations, using Windows File & Print sharing / Samba. That solves a fair amount of the problem?