There is many reasons why you should opt to use to a print.css and here's just a few reasons.
- new pages have a print option with no further intervention.
- Google can easily see that you have a print css (No worries about duplicate content.)
- no need to edit any markup.
Now... Your vague on using a different HTML file since this could mean 2 things, you have a different style sheet assigned to pageB or your actually editing elements out of the page. Either way your duplicating content unnecessary - granted we have things like canonical links which helps prevent this but it should be just a guess of pressing the print bottom and BAM.
Also a different page that prompts for print would need to use JavaScript which may not work because JS is not enabled, you'd need to use something like window.onload = function() { window.print(); }
Personally I'd opt to use print.css if you opt to use pageB method using a style sheet would be pointless and editing elements of the page would be tiresome, you want the method that your able to make global changes quickly - CSS Print enables this.
Simply use stuff like:
header, footer, a, img{display:none;}