mm Prueba en lugar de enviarlo como "attach" como "inline" .. es decir .. a forzar la visualización del archivo directamente (y luego tu decidiras si lo guardas en "local" o que haces con el). Por lo menos que sirva para descartar otros problemas referentes a la lectura del archivo.
Código PHP:
header('Content-Disposition: inline; filename="'.basename($pdf).'"');
Un saludo,