为什么在PDF文件中没有显示图像?

时间:2018-12-15 10:06:24

标签: database laravel image pdf

我正在尝试显示书籍数据-标题,作者,出版商等,以及图像作为封面。除了我设法显示的图像以外的所有数据。

这是我的代码:

路线:

Route::get('/dynamic_pdf', 'DynamicPDFController@index');
Route::get('/dynamic_pdf/pdf', 'DynamicPDFController@pdf');

控制器:

   <?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use DB;
use PDF;


class DynamicPDFController extends Controller
{
    public function index(){
        $book_data = $this->get_book_data();
        return view('dynamic_pdf')->with('book_data',$book_data);
    }

    //get book data method
    public function get_book_data(){
        $book_data = DB::table('books')
                            ->limit(515)
                            ->get();
        return $book_data;
    }

    public function pdf(){

            PDF::setOptions(['isHtml5ParserEnabled'=>true, 'isRemoteEnabled'=>true]);
        $pdf= \App::make('dompdf.wrapper'); //uses a method of dompdf
        $pdf->loadHTML($this->convert_book_data_to_html());// converts book data to html
        return $pdf->stream();//makes it able to show pdf file
    }

    function convert_book_data_to_html()
    {

     $book_data = $this->get_book_data();
     $output = '
     <h3 align="center">Book Data</h3>
     <table width="100%" style="border-collapse: collapse; border: 0px;">
      <tr>
    <th style="border: 1px solid; padding:12px;" width="20%">Cover</th>
    <th style="border: 1px solid; padding:12px;" width="30%">Title</th>
    <th style="border: 1px solid; padding:12px;" width="15%">Author</th>
    <th style="border: 1px solid; padding:12px;" width="15%">Publisher</th>
    <th style="border: 1px solid; padding:12px;" width="20%">Year</th>
    <th style="border: 1px solid; padding:12px;" width="20%">Description</th>
   </tr>
     ';  
     foreach($book_data as $book)
     {
      $output .= '
      <tr>
      <td style="border: 1px solid; padding:12px;"> <img src="/storage/public/cover_images/'. $book->image .'"> </td>

       <td style="border: 1px solid; padding:12px;">'. $book->title.'</td>
       <td style="border: 1px solid; padding:12px;">'. $book->author.'</td>
       <td style="border: 1px solid; padding:12px;">'. $book->publisher.'</td>
       <td style="border: 1px solid; padding:12px;">'. $book->year.'</td>
       <td style="border: 1px solid; padding:12px;">'. $book->description.'</td>
      </tr>

      ';
     }
     $output .= '</table>';
     return $output;
    }
}

查看:

 <!DOCTYPE html>
<html>
 <head>
  <title>Laravel - How to Generate Dynamic PDF from HTML using DomPDF</title>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" />
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
  <style type="text/css">
   .box{
    width:600px;
    margin:0 auto;
   }
  </style>
 </head>
 <body>
  <br />
  <div class="container">
   <h3 align="center">Welcome to our pdf data</h3><br />

   <div class="row">
    <div class="col-md-7" align="right">
     <h4>Books Data</h4>
    </div>
    <div class="col-md-5" align="right">
     <a href="{{ url('dynamic_pdf/pdf') }}" class="btn btn-danger">Convert into PDF</a>
    </div>
   </div>
   <br />
   <div class="table-responsive">
    <table class="table table-striped table-bordered">
     <thead>
      <tr>
       <th>Cover</th>
       <th>Title</th>
       <th>Author</th>
       <th>Publisher</th>
       <th>Year</th>
       <th>Description</th>
      </tr>
     </thead>
     <tbody>
     @foreach($book_data as $book)
      <tr>
       <td> <img src="{{asset('/storage/public/cover_images/'.$book->image )}}" style="width:150px; height:150px; float:left; border-radius:50%; margin-right:25px;"></td>
       <td>{{ $book->title }}</td>
       <td>{{ $book->author }}</td>
       <td>{{ $book->publisher }}</td>
       <td>{{ $book->year }}</td>
       <td>{{ $book->description }}</td>
      </tr>
     @endforeach
     </tbody>
    </table>
   </div>
  </div>
 </body>
</html>

Example

我可以显示视图中的图像,但是当我单击按钮转换为PDF时,图像不会显示,但显示图像未找到或类型未知。 我真的不明白为什么它不起作用。

0 个答案:

没有答案