2015-12-28 29 views
5

Tôi đã cài đặt 'barryvdh/laravel-dompdf' sử dụng nhà soạn nhạc và thêm những dòng nàyLaravel 5.1 - barryvdh/laravel-dompdf, tập tin PDF tải không hoạt động đúng

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

vào tệp tin 'app.php' trong ' thư mục config' và cũng có thể tạo ra PdfController, như thế này

<?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'); 
    } 
} 

bây giờ mã hoạt động tốt, nội dung là chương trình trong trình duyệt ở định dạng pdf, nhưng khi tôi tải về tập tin này, các tập tin không có bất kỳ extension.I thử để sửa đổi dòng chứa mã trả lại như

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

Nhưng bây giờ, trang trực tiếp cung cấp tệp để tải xuống với tên 'document.pdf' hiển thị lỗi trong khi tải xuống (không biết tên và tài liệu này 'document.pdf' đến từ đâu). Ngoài ra tôi đang làm việc trên localhost.

+0

Thử '$ pdf-> stream ('testfile.pdf ') 'không có' -> tiêu đề (' Content-Type ',' application/pdf '); 'Có lẽ dompdf gửi tiêu đề của chính nó – Moppo

+0

Cảm ơn bạn đã phản hồi nhanh, nhưng tôi đã thử nó rồi .. và vấn đề vẫn tồn tại .. :( – SJB

Trả lời

2

Bạn muốn làm gì với pdf? Để hiển thị trong trình duyệt hoặc tải xuống đĩa? đây là ví dụ nơi pdf sẽ được tải về

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

ví dụ từ mã của tôi, nơi tôi hiển thị thông tin máy tính xách tay trong pdf

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

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

@SJBansod mã này thực sự hoạt động. Tôi làm điều này theo cách tương tự. Lỗi hoặc hành vi sai trái bạn nhận được là gì? –

+1

Cảm ơn. Tôi thực sự muốn tải tệp xuống. Nhưng nó cũng không hoạt động. đã được sử dụng firefox với một chút phiên bản cũ .. nhưng khi tôi thử nghiệm nó trong trình duyệt khác nhau ... (chrome), cả hai mã (mã ban đầu mà tôi đã đăng trong câu hỏi và một trong những tải về pdf) hoạt động tốt ... bài học: khi sử dụng thử dompdf trong trình duyệt khác :) – SJB

1

tôi đã cùng một vấn đề, sau khi tìm kiếm khắp nơi mà không kết quả, tôi quyết định chơi với mã và điều này làm việc cho tôi.

cấu hình bên trong/app.php

-> dưới cung cấp thêm các dòng mã,

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

enter image description here

-> dưới bí danh thêm dòng mã,

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

enter image description here

Nhớ dấu ngoặc kép và dấu phẩy! Kiểm tra hình ảnh ở trên,

-> Trong bộ điều khiển của bạn, thêm dòng mã, sử dụng Ứng dụng;

Hy vọng rằng, bạn sẽ được tốt để đi .... thử nghiệm bằng cách sử dụng dòng code..place họ bên trong một phương pháp trong điều khiển của bạn.

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

Mở thành công, trình duyệt của bạn sẽ mở ra một Viewer PDF với PDF trắng với các thử nghiệm từ

Chúc mừng, thưởng thức mã hóa của bạn;)

0

tôi sử dụng mã này view()->share($data); $pdf = PDF::loadview('sale.pdf'); return $pdf->download('slip_out.pdf');

thay của

return $pdf->stream('testfile.pdf') 
       ->header('Content-Type','application/pdf'); 
Các vấn đề liên quan