2010-06-27 7 views
0

Aujourd'hui, j'ai commencé à expérimenter avec des générateurs PDF basés sur PHP. J'ai essayé TCPDF et ça marche très bien pour la plupart, bien qu'il semble être un peu lent. Mais quand je charge le fichier PHP qui génère mon PDF dans Internet Explorer 8, je vois des lignes et des lignes de caractères étranges. Chrome reconnaît cependant comme un PDF.TCPDF affiche des caractères étranges dans IE8

Je suppose que je dois définir un type MIME spécial pour dire à IE qu'il devrait interpréter la sortie de la page comme un fichier PDF. Si oui, comment puis-je faire cela?

Répondre

2

mettre des types mime "application/pdf" ou "application/octet-stream" peut aider. garder à l'esprit que « flux d'application/octet » forcera le téléchargement du fichier et pourrait l'empêcher d'ouvrir dans le navigateur ..

dans le cas où vous vous demandez, vous pouvez le faire comme ça:

header('Content-type: application/octet-stream'); 
0

Vous devez gérer IE différemment pour le contenu généré dynamiquement. Voir cet article,

http://support.microsoft.com/default.aspx?scid=kb;en-us;293792

Dans mon code, je fais cela,

if(isset($_SERVER['HTTP_USER_AGENT']) AND ($_SERVER['HTTP_USER_AGENT']=='contype')) { 
      header('Content-Type: application/pdf'); 
      exit; 
    } 

Ce problème peut aussi expliquer la lenteur que vous avez mentionné parce que votre page envoie effectivement l'ensemble PDF à plusieurs reprises sans cette logique.

0

@Pieter: J'ai rencontré le même problème en utilisant tcpdf (avec fpdi), et en chargeant la page qui générait le pdf en utilisant un appel ajax. J'ai changé le javascript pour charger la page en utilisant window.location à la place, et le problème a disparu et la performance était bien meilleure. Je crois que les deux autres affiches sont correctes dans l'idée que l'en-tête du document est à l'origine du problème. Dans mon cas, en raison de l'appel ajax, l'en-tête n'était pas appliqué à l'ensemble du document et provoquait le problème. J'espère que cela t'aides.

0

Je trouve cela un problème aussi, et pour moi tout cela articulé sur le code:

if (php_sapi_name(!= 'cli') { 

en ligne 7249 du fichier tcpdf.php.
Je commente cette « if » (et assimilées « } ») et tout fonctionne très bien pour mon autre navigateur et IE8 Hope this helps

1

J'ai eu ce problème aussi, mais ce que je l'ai fait pour le faire fonctionner est j'ajouté

exit(); 

à la fin de la sortie pdf.

Questions connexes