Node author and body as plain text
By the time that a print $name is available, you are already in a template or other late stage theme item, correct?  This means the parts have already been passed through render methods to add all that html.

When I had a project that created pdf reports for download and printing, removing these items was important.  I added a helper function to my site module. (every one of my sites receives a site_[name].module, but you could add this to your template.php if you want to keep this all in the theme)

define('UNWANTED_REPORT_TAGS', 'span/h1/h2/h3/h4/div/strong');
/*
 * helper function for removing html from report contents
 * Strip only selcted tags in THEME_preprocess_node function below
 * strip defined constant tags if none given
 * Growth order of O(n) where n is the number of tags, so defaults to O(7)
 */
function module_strip_only($str, $tags = NULL, $keep = TRUE) {
  if ($tags == NULL) {
    // load the defaults
    $tags = explode('/', UNWANTED_REPORT_TAGS);
  }
  if (!is_array($tags)) {
    // we were passed a string, check format and parse
    $tags = (strpos($str, '&gt;') !== false ? explode('&gt;', str_replace('&lt;', '', $tags)) : array($tags));
    if (end($tags) == '') {
      array_pop($tags);
    }
  }
  foreach ($tags as $tag) {
    // tag by tag, strip our given string
    if( $keep ) {
      $str = preg_replace('#&lt;/?' . $tag . '[^&gt;]*&gt;#is', '', $str);
    } else {
      // we want the usual text, drop tags and what they wrap
      $cleaning = TRUE;
      while( $cleaning ) {
        // regex probably doesnt work here
        $clipFrom = strpos( $str, '&lt;' . $tag );
        $clipTo = strpos( $str, '&lt;/' . $tag , $clipFrom );
        $clipTo = strpos( $str, '&gt;' , $clipTo ); // find end of closing tag
        $str = substr($str, 0, $clipFrom) . substr( $str, $clipTo );
        if( substr_count ( $str, '&lt;'. $tag) &lt; 1 ) {
          $cleaning = FALSE;
        }
      }
    }
  }
  return $str;
}


The function will need an appropriate name for you, of course.  Then in your template file your line would be &lt;?php print html_strip_only($name); ?&gt;  

If you just want to strip all &lt;&gt; sets from the string, you can do that like this.  &lt;?php print preg_replace('&lt;/?[^&gt;]*&gt;', '', $name); ?&gt; and I am dont think that / needs escaped, but if it does then it would be \/.  The online test tools want it escaped.

$pattern = '/&lt;\\/?[^&gt;]*&gt;/';
$replacement = '';
$subject = '&lt;p class="updated icon-clock"&gt;Updated: 1/14/2016&lt;/p&gt;&lt;h3 class="field-label"&gt; Related businesses  &lt;/h3&gt;';
echo preg_replace($pattern, $replacement, $subject, -1 );