Hallo,
du möchtest also, dass der Browser eine Ressource anzeigt, die er eigentlich gar nicht versteht. Das kann nicht funktionieren.
header("Content-type:application/pdf");
header("Content-lenght:" . strlen($buff));
header("Content-disposition:inline, filename=xyz.pdf");
Tja, und nun schaut unser lieber Internet Explorer in seinen internen Tabellen nach, was denn der MIME-Typ "application/pdf" eigentlich ist, und da findet er keinen Eintrag. Eigentlich würde er jetzt anbieten, die Datei lokal zu speichern, weil er nichts damit anzufangen weiß. Aber da ist ja noch der content-disposition Header, der ihm dringend nahelegt, die Ressource dennoch "inline" anzuzeigen. Also versucht er es halt als reinen Text, ist das Beste, was er in der Situation hinkriegt.
Für die korrekte Darstellung des PDFs wäre jetzt das Acrobat-Plugin nötig, das scheint aber auf deinem Testrechner nicht (oder nicht korrekt) installiert zu sein.
So long,
Martin