title: TCPDF & mPDF error: Some data has already been output to browser, can't send PDF file
body: <p><strong>The Problem:</strong></p>
  
  <p>TCPDF &amp; mPDF error: Some data has already been output to browser, can't send PDF file 
  I gave up on trying to fix the error with TCPDF and installed mPDF only to get the same error when attempting to render the document to the browser.  I can save the document just fine and have it displayed in the browser upon retrieval. </p>
  
  <p>Additionally, this error only presented itself after switching from my dev server to my host server.  Works fine on DEV server (DEV server = WAMPSERVER, PROD server = Hostgator Linux).</p>
  
  <p><strong>Troubleshooting:</strong></p>
  
  <p>I've read the many volumes of other discussions around the internet regarding this problem and I can find no white space related issue.  I have condensed the request to the following:</p>
  
  <pre><code>&lt;?php
  ob_start(); 
  $html = "Hello World";
  include("../mpdf.php");
  $mpdf=new mPDF(); 
  $mpdf-&gt;WriteHTML($html);
  $mpdf-&gt;Output();
  ob_end_clean();
  ?&gt;
  </code></pre>
  
  <p>Tried the same concept with TCPDF using ob_clean() method before writeHtml.  Same error in all cases (I can assure everyone this is no white space related issue - I even viewed the file in hex to make sure there were no odd characters being inserted by the editor).</p>
  
  <p><strong>Possible Clue:</strong></p>
  
  <p>I was finally able to get a clue as to what's going on when I moved the entire mPDF library and classes and folders to the public_html folder, rather than from inside my application folder (a symfony project).  Under this scenario, when I pointed my browser to the example pages, it rendered just fine with no errors at all (and it was super fast btw).  So, I know it works, and I know there is no white-space related issue, or any other related issue, regarding the code or installation (on the mPDF/TCPDF side of things).  Which leads me to believe either symfony is inserting headers of some sort (which I tried removing using: clearHttpHeaders() ), or there is a PHP INI or CONFIG setting I am missing somewhere on the PROD server.  </p>
  
  <p>Does anyone have ANY idea of what's going on here??  </p>
  
  <p><strong>Update:</strong>  stream dump:</p>
  
  <pre><code>Request URL:http://www.example.com/mpdf
  Request Method:GET
  Status Code:200 OK
  
  Request Headers
  GET /mpdf HTTP/1.1
  Host: www.example.com
  Connection: keep-alive
  Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8
  User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36
  Accept-Encoding: gzip,deflate,sdch
  Accept-Language: en-US,en;q=0.8
  Cookie: __utma=44708724.1463191694.1383759419.1383759419.1383765151.2; __utmz=44708724.1383759419.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); PHPSESSID=9c7c802200b9d8eefe718447755add5f; __utma=1.813547483.1383767260.1385127878.1385130071.38; __utmb=1.7.10.1385130071; __utmc=1; __utmz=1.1383767260.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)
  
  Response Headers
  Cache-Control:no-store, no-cache, must-revalidate, post-check=0, pre-check=0
  Connection:Keep-Alive
  Content-Type:text/html
  Date:Fri, 22 Nov 2013 14:59:52 GMT
  Expires:Thu, 19 Nov 1981 08:52:00 GMT
  Keep-Alive:timeout=5, max=75
  Pragma:no-cache
  Server:Apache
  Transfer-Encoding:chunked
  </code></pre>
  
  <p>Nothing is jumping out at me... any other thoughts?</p>