se ti tira fuori tutti quei simboli vuol dire che il file lo legge, prova a fare un controllo di questo genere prima di settare l'header:

codice:
if(header_sent()) {
  echo "SPIACENTE, HAI GIA DATO UN OUTPUT SULLA PAGINA";
} else {
  header....
}
non è una soluzione, ma capisci se hai già dato un output nella pagina, se cosi è il content type del documento è già settato ad html, e quindi come dici tu vedi il pdf come se fosse aperto dal blocco note.

Per usare queste funzioni devi essere sicuro di non aver scritto nulla nella pagina (che ne so ad esempio la testata del tuo sito..).

ciao