2015-12-28 14 views
5

ho installato 'barryvdh/laravel-dompdf' utilizzando compositore e aggiunto queste righelaravel 5.1 - barryvdh/laravel-dompdf, PDF download file non funziona correttamente

Barryvdh\DomPDF\ServiceProvider::class 
'PDF'=> Barryvdh\DomPDF\Facade::class 

al file 'app.php' in ' cartella config' e ha anche creato PdfController, come questo

<?php 
namespace App\Http\Controllers; 
use Illuminate\Http\Request; 
use App\Http\Requests; 
use App\Http\Controllers\Controller; 
use App; 
use PDF; 

class PdfController extends Controller 
{ 
    public function invoice() 
    { 
     $pdf = App::make('dompdf.wrapper'); 
     $pdf->loadHTML('<h1>Test</h1>'); 
     return $pdf->stream('testfile') 
       ->header('Content-Type','application/pdf'); 
    } 
} 

ora il codice funziona bene, i contenuti sono spettacolo in del browser in formato pdf, ma quando ho scaricato il file, il file non ha alcuna extension.I provato per modificare la riga contenente il codice di ritorno come

return $pdf->stream('testfile.pdf') 
        ->header('Content-Type','application/pdf'); 

Ma ora, pagina fornisce direttamente file da scaricare con il nome 'document.pdf' che mostra errore durante il download, (dont konw come e da dove questo nome 'document.pdf' venuto). Inoltre sto lavorando su localhost.

+0

Prova '$ pdf-> stream ('testfile.pdf ') 'senza' -> header (' Content-Type ',' application/pdf '); 'Probabilmente dompdf manda le intestazioni da solo – Moppo

+0

Grazie per la risposta rapida, ma l'ho provato già .. e il problema persiste .. :( – SJB

risposta

2

Che cosa vuoi fare con il pdf? Mostrare nel browser o scaricare su disco? questo è esempio in cui pdf viene scaricato

return $pdf->download('pdfName.pdf'); 

esempio dal mio codice dove mostro informazioni notebook in pdf

$laptop = Notebook::findOrFail($id); 
     $data['laptop'] = $laptop; 
     $pdf = \PDF::loadView('pdf.detaljiLaptop', $data); 

     return $pdf->download($laptop->modelName.' Computers.pdf'); 
+0

@SJBansod questo codice funziona davvero, lo faccio allo stesso modo.Qual è l'errore o il comportamento scorretto che si ottiene? –

+1

Grazie. In realtà volevo scaricare il file., Ma non funzionava anche. ,, I stavo usando firefox con una versione un po 'vecchia ... ma quando l'ho provato in un browser diverso ... (chrome), entrambi i codici (codice originale che ho postato in questione e altro di scaricare pdf) funzionano bene ... lezione: quando si usa dompdf testarlo in un browser diverso :) – SJB

1

Ho avuto lo stesso problema, dopo aver cercato in tutto senza risultati, ho deciso di giocare con il codice e questo ha funzionato per me.

config All'interno/app.php

-> sotto i fornitori di aggiungere la riga di codice,

'Barryvdh\DomPDF\ServiceProvider' not Barryvdh\DomPDF\ServiceProvider::class, 

enter image description here

-> sotto pseudonimi aggiungere la riga di codice,

'PDF'  => 'Barryvdh\DomPDF\Facade' not 'PDF' => Barryvdh\DomPDF\Facade::class, 

enter image description here

Occupati delle virgolette e delle virgolette! Controllare le immagini sopra,

-> Nel controller aggiungere la riga di codice, utilizzare l'App;

Si spera, sarà buona per andare .... test utilizzando le linee di code..place loro all'interno di un metodo nel controller.

$pdf = App::make('dompdf.wrapper'); 
$pdf->loadHTML('<h1>Test</h1>'); 
return $pdf->stream(); 

In caso di successo, il browser si aprirà un visualizzatore di PDF con PDF bianca con la parola di prova

Cheers, godetevi la vostra codifica;)

0

io uso questo codice view()->share($data); $pdf = PDF::loadview('sale.pdf'); return $pdf->download('slip_out.pdf');

invece di

return $pdf->stream('testfile.pdf') 
       ->header('Content-Type','application/pdf');