在浏览器上显示PDF

Rak*_*tty 10 html php pdf codeigniter

我想在存储在我们服务器上的浏览器上显示PDF文件.这是我的代码: -

$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);
Run Code Online (Sandbox Code Playgroud)

但它在浏览器上返回低于输出:

%PDF-1.4 % 5 0 obj >stream
Run Code Online (Sandbox Code Playgroud)

PDF文件显示:

在此输入图像描述

我在codeignter看来这样做.

我做错了什么?请帮帮我.提前致谢

编辑: -

我做的事情如下:

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);

  }
Run Code Online (Sandbox Code Playgroud)

那么如何在浏览器上显示多个文件?

编辑2: -

因此,根据下面的答案,我必须使用phpmerger合并多个PDF文件并显示到浏览器中.我浏览了这个网站http://pdfmerger.codeplex.com/但无法用于codeignter.任何人都可以帮我在我的编码器中使用这个phpmerger

Kar*_*kar 8

你可以使用PDF Merger图书馆来实现你的目标. 这是原始库的链接(过时). 喜欢维护的myokyawhtun前叉

示例代码如下

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.
Run Code Online (Sandbox Code Playgroud)

支持的模式 - ,,browser 和.filedownloadstring


编辑:我可以看到你所标记CI,你可以把PDFMerger.phpapplications/libraries.并将其加载到autoload.php或加载controller

然后可以使用它$this->pdfmerger->addPDF()merge()功能.


小智 8

$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);
Run Code Online (Sandbox Code Playgroud)

请尝试这个代码,我希望它会像我一样努力.

  • @James 这会导致未闭合的双引号字符串。请以不同的方式处理你的头部模糊——如果你不喜欢点,也许可以使用花括号。 (2认同)