2010-02-15 5 views
0

J'ai un site Web dans cet utilisateur doit prendre un rapport en pdf [dans le code], j'ai essayé le code suivant, écrou il affiche des caractères spéciaux, S'il vous plaît aidez-moi à résoudre ce problème.imprimer les données en format PDF en utilisant php

<?php 
require('fpdf.php'); 

//create a FPDF object 
$pdf=new FPDF(); 

//set document properties 
$pdf->SetAuthor('Lana Kovacevic'); 
$pdf->SetTitle('FPDF tutorial'); 

//set font for the entire document 
$pdf->SetFont('Helvetica','B',20); 
$pdf->SetTextColor(50,60,100); 

//set up a page 
$pdf->AddPage('P'); 
$pdf->SetDisplayMode(real,'default'); 

//insert an image and make it a link 
$pdf->Image('logo.png',10,20,33,0,' ','http://www.fpdf.org/'); 

//display the title with a border around it 
$pdf->SetXY(50,20); 
$pdf->SetDrawColor(50,60,100); 
$pdf->Cell(100,10,'FPDF Tutorial',1,0,'C',0); 

//Set x and y position for the main text, reduce font size and write content 
$pdf->SetXY (10,50); 
$pdf->SetFontSize(10); 
$pdf->Write(5,'Congratulations! You have generated a PDF.'); 

//Output the document 
$pdf->Output('example1.pdf','I'); 
?> 

i ai la sortie comme ci-dessous g endstream endobj 1 0 obj <> endobj 5 0 obj <> endobj 2 0 obj < </ProcSet [/ PDF/Text/ImageB/ImageC/IMAGEi]/Font < </F1 5 0 R >>/XObjet < < >> >> endobj 6 0 obj < </Producteur (FPDF 1.6)/Titre (tutoriel FPDF)/Auteur (Lana Kovacevic)/CreationDate (D: 20100215182640) >> endobj 7 0 obj < </Type/Catalogue/Pages 1 0 R/OpenAction [3 0 R/FitH null]/PageLayout/OneColumn >> endobj xref 0 8 0000000000 65535 f 0000000407 00000 n 000 0000595 00000 n 0000000204 00000 n 0000000282 00000 n 0000000494 00000 n 0000000699 00000 n 0000000822 00000 n remorque < </Taille 8/Root 7 0 R/Info 6 0 R >> startxref 925 %% EOF

+0

Bienvenue chez SO. Veuillez donner une description plus détaillée de votre problème, par exemple en montrant quels caractères spéciaux sont sortis. –

+0

Oui, il semble que vous ayez besoin d'ajouter un en-tête 'content-type'. Voir la réponse de Cryo ci-dessous. –

Répondre

1

vous Très probablement avez juste besoin pour spécifier le type de contenu en PDF afin que votre navigateur sache comment gérer le fichier.

header('Content-type: application/pdf'); 

Assurez-vous d'appeler avant vous appelez $pdf->Output('example1.pdf','I');

Cette question pourrait aussi être causée par les informations ayant du navigateur correct envoyé, mais ne pas avoir an application that understands PDFs installé.

+0

Je pense que FPDF le fait déjà dans Output(), mais je peux me tromper. –

+0

Ah, peut-être que vous avez raison, il n'y a aucune indication d'une sortie d'en-tête. http://www.fpdf.org/en/doc/output.htm –

+0

@Pekka Je pensais que cela aussi, mais son problème semble être qu'il obtient la sortie de texte du PDF. – nortron

0
$pdf->Output('example1.pdf','I'); 

Permet d'enregistrer le fichier PDF dans un fichier. Si vous voulez afficher pdf directement dans le navigateur (ou dialogue de téléchargement ouvert, cela dépend de votre navigateur et plugins), vous devez faire:

$pdf->Output(); 
+0

En fait, le deuxième paramètre spécifie où envoyer le fichier, «je» signifie «en ligne au navigateur»: http://www.fpdf.org/fr/doc/output.htm – nortron

+0

Vous avez raison, je n'ai que dans la source de mon application: / – skyman

0

Output(..., 'I') doit gérer les en-têtes HTTP pour vous - à moins que vous utilisez PHP- CLI.

FDPF::Output dépend php_sapi_namepas retour 'cli' lorsque la destination est 'I'. Il fait toujours écho à la mémoire tampon, mais les en-têtes appropriés ne sont pas spécifiés.

Si vous utilisez FPDF 1.6, voir les lignes 1010-1027, esp. 1014, de fpdf.php.

Questions connexes