Je veux afficher un fichier PDF sur le navigateur qui est stocké sur notre serveur. Voici mon code: -
$path = $_SERVER['DOCUMENT_ROOT'].folder_name.'/resources/uploads/pdf/pdf_label_'.$order['id'].'.pdf';
$filename = 'pdf_label_'.$order['id'].'.pdf';
$file = $path;
$filename = $filename;
header('Content-type: application/pdf');
header('Content-Disposition: inline; filename="' . $filename . '"');
header('Content-Transfer-Encoding: binary');
header('Accept-Ranges: bytes');
@readfile($file);
Mais il retourne en dessous de la sortie sur le navigateur:
%PDF-1.4 % 5 0 obj >stream
Fichier PDF à afficher:
Je le fais sur la vue de codeignter.
Qu'est ce que je fais mal ? S'il vous plaît aidez-moi sur ce point. Merci d'avance
MODIFIER :-
Je fais quelque chose comme ci-dessous:
foreach($orders as $order){
$path = $_SERVER['DOCUMENT_ROOT'].folder_name.'/resources/uploads/pdf/pdf_label_'.$order['id'].'.pdf';
$filename = 'pdf_label_'.$order['id'].'.pdf';
$file = $path;
$filename = $filename;
header('Content-type: application/pdf');
header('Content-Disposition: inline; filename="' . $filename . '"');
header('Content-Transfer-Encoding: binary');
header('Accept-Ranges: bytes');
echo file_get_contents($file);
}
Alors, comment puis-je afficher plus d'un fichier sur le navigateur?
Edit 2: -
Donc, comme indiqué dans la réponse ci-dessous, je dois utiliser phpmerger pour fusionner plusieurs fichiers PDF et les afficher dans le navigateur. Je suis passé par ce site http://pdfmerger.codeplex.com/ mais je ne parviens pas à utiliser codeignter. Quelqu'un peut-il m'aider s'il vous plaît à utiliser ce phpmerger dans mon codeingter
vous pouvez utiliser la bibliothèque PDF Merger
pour atteindre vos objectifs . Voici le lien vers la bibliothèque d'origine (obsolète).Préférer la fourche myokyawhtun qui est maintenue
et un exemple de code sera comme suit
include 'PDFMerger.php';
$pdf = new PDFMerger;
$pdf->addPDF('path_to_pdf/one.pdf', '1, 3, 4') //include file1 - pages 1,3,4
->addPDF('path_to_pdf/two.pdf', '1-2') //include file2 - pages 1 to 2
->addPDF('path_to_pdf/three.pdf', 'all') //include file3 - all pages
->merge('browser', 'test.pdf'); // OUTPUT : make sure you choose browser mode here.
Modes pris en charge - browser
, file
, download
et string
.
Edit: Comme je peux voir que vous avez marqué CI, vous pouvez mettre PDFMerger.php
dans applications/libraries
..__ et le charger dans autoload.php
ou dans controller
et puis peut l'utiliser comme fonctions $this->pdfmerger->addPDF()
et merge()
.
$filePath="file path here";
$filename="file name here";
header('Content-type:application/pdf');
header('Content-disposition: inline; filename="'.$filename.'"');
header('content-Transfer-Encoding:binary');
header('Accept-Ranges:bytes');
@ readfile($filePath);
s'il vous plaît essayez ce code, j'espère qu'il fonctionnera comme j'essaie.
À la place d'utiliser
@readfile($file);
Utilisation
echo file_get_contents($file);
Ou omettez le @
ma bibliothèque recommandée pour incorporer des PDF est PDFObject. Découvrez-le ici: http://pdfobject.com/
Les amis utilisent simplement Anchor Tag c'est tout. Tous les nouveaux navigateurs actuels supportent l'affichage de tous les fichiers.