web-dev-qa-db-ja.com

表示PDFブラウザ上

サーバーに保存されているブラウザに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);

しかし、ブラウザの出力の下に戻ります:

%PDF-1.4 % 5 0 obj >stream

表示するPDFファイル:

enter image description here

私はcodeignterの観点からこれを行っています。

私は何を間違っていますか?これについて私を助けてください。前もって感謝します

EDIT:-

私は以下のようなことをしています:

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

  }

では、ブラウザに複数のファイルを表示するにはどうすればよいですか?

編集2:-

したがって、以下の回答に従って、phpmergerを使用して複数のPDFファイルをマージし、ブラウザに表示する必要があります。私はこのWebサイトを通過しました http://pdfmerger.codeplex.com/ ですが、codeignterに使用できません。私のphpmergerを私のcodeingter内で使用するのを手伝ってくれる人はいますか?

9
Rakesh Shetty

_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.
_

サポートされるモード-browserfiledownloadおよびstring


Edit:CIをタグ付けしたことがわかるので、_PDFMerger.php_を_applications/libraries_に挿入できます。 _autoload.php_またはcontrollerにロードします

そして、それを$this->pdfmerger->addPDF()およびmerge()関数のように使用できます。

7
Karan Thakkar
$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);

このコードを試してみてください、私がそれが私のように機能することを願っています。

7
arshad

使用する代わりに

@readfile($file);

ユーザー

echo file_get_contents($file);

または、@を省略します

1
RichardBernards

pDFの埋め込みに推奨されるライブラリはPDFObjectです。ここで確認してください: http://pdfobject.com/

1
Darius

このメソッドは、ブラウザのページにPDFを表示する場合に機能します。

$file = 'filename.pdf';
echo "<embed src='$file' type='application/pdf' width='80%' height='600px' />";
1
Mike Volmar

友達はそれだけのアンカータグを使用します。今日のすべての新しいブラウザーは、すべてのファイルの表示をサポートしています。

0
Siddu Loni