10-Mar-2023
.
Admin
Hi Friends,
This example is focused on how to generate invoice pdf in laravel?. you can understand a concept of laravel invoice pdf file from view. This article will give you simple example of how to use invoice pdf generate in laravel?.
So, here i will give you very simple example for laravel - how to generate pdf for invoice and purchase order. In this tutorial, I will give you step by step simple how do i make a pdf invoice in laravel?
Here, Creating a basic example of generating an invoice in PDF - Laravel create pdf and view.
So let's start following step.
Step 1 : Install Laravel Fresh Application
Open your terminal OR command prompt and run bellow command:
composer create-project --prefer-dist laravel/laravel blog
Step 2 : Install dompdf Package
first of all we will install barryvdh/laravel-dompdf composer package by following composer command in your laravel application.
composer require barryvdh/laravel-dompdf
After successfully install package, open config/app.php file and add service provider and alias.
config/app.php
'providers' => [
....
Barryvdh\DomPDF\ServiceProvider::class,
],
'aliases' => [
....
'PDF' => Barryvdh\DomPDF\Facade::class,
]
Step 3 : Add Route
In this is step we need to create routes for items listing. so open your "routes/web.php" file and add following route.
routes/web.php
<?php
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('generate-invoice-pdf', array('as'=> 'generate.invoice.pdf', 'uses' => 'PDFController@generateInvoicePDF'));
Step 4 : Add Controller
Here,we require to create new controller PDFController that will manage generatePDF method of route. So let's put bellow code.
app/Http/Controllers/PDFController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use PDF;
class PDFController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function generateInvoicePDF()
{
$pdf = PDF::loadView('myPDF');
return $pdf->download('nicesnippets.pdf');
}
}
Step 5 : Create View File
In Last step, let's create myPDF.blade.php(resources/views/myPDF.blade.php) for layout of pdf file and put following code:
resources/views/myPDF.blade.php
<!DOCTYPE html>
<html>
<head>
<title>Larave Generate Invoice PDF - Nicesnippest.com</title>
</head>
<style type="text/css">
body{
font-family: 'Roboto Condensed', sans-serif;
}
.m-0{
margin: 0px;
}
.p-0{
padding: 0px;
}
.pt-5{
padding-top:5px;
}
.mt-10{
margin-top:10px;
}
.text-center{
text-align:center !important;
}
.w-100{
width: 100%;
}
.w-50{
width:50%;
}
.w-85{
width:85%;
}
.w-15{
width:15%;
}
.logo img{
width:45px;
height:45px;
padding-top:30px;
}
.logo span{
margin-left:8px;
top:19px;
position: absolute;
font-weight: bold;
font-size:25px;
}
.gray-color{
color:#5D5D5D;
}
.text-bold{
font-weight: bold;
}
.border{
border:1px solid black;
}
table tr,th,td{
border: 1px solid #d2d2d2;
border-collapse:collapse;
padding:7px 8px;
}
table tr th{
background: #F4F4F4;
font-size:15px;
}
table tr td{
font-size:13px;
}
table{
border-collapse:collapse;
}
.box-text p{
line-height:10px;
}
.float-left{
float:left;
}
.total-part{
font-size:16px;
line-height:12px;
}
.total-right p{
padding-right:20px;
}
</style>
<body>
<div class="head-title">
<h1 class="text-center m-0 p-0">Invoice</h1>
</div>
<div class="add-detail mt-10">
<div class="w-50 float-left mt-10">
<p class="m-0 pt-5 text-bold w-100">Invoice Id - <span class="gray-color">#6</span></p>
<p class="m-0 pt-5 text-bold w-100">Order Id - <span class="gray-color">162695CDFS</span></p>
<p class="m-0 pt-5 text-bold w-100">Order Date - <span class="gray-color">03-06-2022</span></p>
</div>
<div class="w-50 float-left logo mt-10">
<img src="https://www.nicesnippets.com/image/imgpsh_fullsize.png"> <span>Nicesnippets.com</span>
</div>
<div style="clear: both;"></div>
</div>
<div class="table-section bill-tbl w-100 mt-10">
<table class="table w-100 mt-10">
<tr>
<th class="w-50">From</th>
<th class="w-50">To</th>
</tr>
<tr>
<td>
<div class="box-text">
<p>Gujarat</p>
<p>360004</p>
<p>Near Haveli Road,</p>
<p>Lal Darvaja,</p>
<p>India</p>
<p>Contact : 1234567890</p>
</div>
</td>
<td>
<div class="box-text">
<p>Rajkot</p>
<p>360012</p>
<p>Hanumanji Temple,</p>
<p>Lati Ploat</p>
<p>Gujarat</p>
<p>Contact : 1234567890</p>
</div>
</td>
</tr>
</table>
</div>
<div class="table-section bill-tbl w-100 mt-10">
<table class="table w-100 mt-10">
<tr>
<th class="w-50">Payment Method</th>
<th class="w-50">Shipping Method</th>
</tr>
<tr>
<td>Cash On Delivery</td>
<td>Free Shipping - Free Shipping</td>
</tr>
</table>
</div>
<div class="table-section bill-tbl w-100 mt-10">
<table class="table w-100 mt-10">
<tr>
<th class="w-50">SKU</th>
<th class="w-50">Product Name</th>
<th class="w-50">Price</th>
<th class="w-50">Qty</th>
<th class="w-50">Subtotal</th>
<th class="w-50">Tax Amount</th>
<th class="w-50">Grand Total</th>
</tr>
<tr align="center">
<td>$656</td>
<td>Mobile</td>
<td>$204.2</td>
<td>3</td>
<td>$500</td>
<td>$50</td>
<td>$100.60</td>
</tr>
<tr align="center">
<td>$656</td>
<td>Mobile</td>
<td>$254.2</td>
<td>2</td>
<td>$500</td>
<td>$50</td>
<td>$120.00</td>
</tr>
<tr align="center">
<td>$656</td>
<td>Mobile</td>
<td>$554.2</td>
<td>5</td>
<td>$500</td>
<td>$50</td>
<td>$100.00</td>
</tr>
<tr>
<td colspan="7">
<div class="total-part">
<div class="total-left w-85 float-left" align="right">
<p>Sub Total</p>
<p>Tax (18%)</p>
<p>Total Payable</p>
</div>
<div class="total-right w-15 float-left text-bold" align="right">
<p>$20</p>
<p>$20</p>
<p>$330.00</p>
</div>
<div style="clear: both;"></div>
</div>
</td>
</tr>
</table>
</div>
</html>
you will download file as like bellow:
Now we are ready to run this example and check it...
I hope it can help you...
#Css
#Html
#Laravel