File prevew uses latest flash player, if you're browser have latest it shows with no errors if not it will prompts to install.

So here is Visualforce code

<div>
  <embed src="/_swf/190003/sfc/flex/DocViewer.swf"
  flashvars="shepherd_prefix={!$Site.Prefix}/sfc/servlet.shepherd&v=<<file_record_id>>&mode=chatterfilepreview&in_tests=false"
  width="100%" height="100%" align="middle" id="renditionLarge" 
  quality="high" bgcolor="#f3f3f3" name="renditionLarge" 
  allowscriptaccess="sameDomain" allowfullscreen="true" 
  pluginspage="http://www.adobe.com/go/getflashplayer" 
  wmode="opaque" 
  type="application/x-shockwave-flash" />
</div>

In above code only one change is need in place of <<file_record_id>> replace it with file Id , you can harcode it or can be rendered dynamically

if you observe {!$Site.Prefix}, it responsible for adding site prefix into code block if you're in site {!$Site.Prefix} returns null.

NOTE: we can Safely use it whether we're in Sites or not