Laravel Convert Word To PDF Tutorial

[ad_1]

Convert Word docx file to PDF file in Laravel; In this tutorial, you will learn how to convert Word docx file to pdf file in Laravel using dompdf and phpoffice/phpword library.

How to Convert Word To PDF in Laravel 10|9|8

Using the following steps, you can convert Word docx file to a pdf file in Laravel 10|9|8 web apps:

  • Step 1: Create a Laravel project
  • Step 2: Install Required Packages & Configuration
  • Step 3: Create Controller File
  • Step 4: Define Routes
  • Step 5: Create Blade View FileEzoic
  • Step 6: Test This App

Step 1: Create a Laravel project

First of all, Open your cmd or terminal and run the following command into it to create a new laravel project:

composer create-project laravel/laravel MyApp

Step 2: Install Required Packages & Configuration

Next, run the following command into cmd or terminal to install required packages into your laravel project:

Ezoic

composer require barryvdh/laravel-dompdf
composer require phpoffice/phpword

After installation, you need to configure Laravel to use these packages. Open your config/app.php file and add the service providers and aliases:

'providers' => [
    // ...
    PhpOffice\PhpWord\PhpWordServiceProvider::class,
    PhpOffice\PhpSpreadsheet\SpreadsheetServiceProvider::class,
    Barryvdh\DomPDF\ServiceProvider::class,
],

'aliases' => [
    // ...
    'PhpWord' => PhpOffice\PhpWord\Facades\PhpWord::class,
    'PhpSpreadsheet' => PhpOffice\PhpSpreadsheet\Spreadsheet::class,
],

Step 3: Create Controller File

Now, you need to create a new controller file, so run the following command on terminal or cmd:

Ezoic

php artisan make:controller WordDocxToPDFController

Then visit app/Http/Controllers/ directory and open WordDocxToPDFController.php file and add the following code into it:

<?php
  
namespace App\Http\Controllers;
  
use Illuminate\Http\Request;
  
class WordDocxToPDFController extends Controller
{
   
    public function index(Request $request)
    {
        return view('wordDocxToPDF');
    }
  
  
    public function save(Request $request)
    {
         $fileName = time().'.'.$request->file->extension();  
         $request->file->move(public_path('uploads'), $fileName);
  
         $domPdfPath = base_path('vendor/dompdf/dompdf');
  
         \PhpOffice\PhpWord\Settings::setPdfRendererPath($domPdfPath);
         \PhpOffice\PhpWord\Settings::setPdfRendererName('DomPDF'); 
         $Content = \PhpOffice\PhpWord\IOFactory::load(public_path('uploads/'.$fileName)); 
         $PDFWriter = \PhpOffice\PhpWord\IOFactory::createWriter($Content,'PDF');
  
         $pdfFileName = time().'.pdf';
         $PDFWriter->save(public_path('uploads/'.$pdfFileName)); 
  
         return response()->download(public_path('uploads/'.$pdfFileName));
    }
}

Step 4: Define Routes

Once you have created controller and methods. Now you need to define routes for that.

Ezoic

So visit routes directory and open web.php. Then add the following routes into it:

<?php
  
use Illuminate\Support\Facades\Route;
  
use App\Http\Controllers\WordDocxToPDFController;
  
/*
|--------------------------------------------------------------------------
| 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('word-docx-to-pdf', [WordDocxToPDFController::class, 'index']);
Route::post('word-docx-to-pdf', [WordDocxToPDFController::class, 'save']);

Step 5: Create Blade View File

Now, you need to resources/views/ directory and create wordDocxToPDF.blade.php & add the following code into it:

Ezoic

<!DOCTYPE html>
<html>
<head>
    <title>Laravel Word Dox File to PDF File Example - tutsmake.com</title>
    <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
        
<body>
<div class="container">
         
    <div class="panel panel-primary">
    
      <div class="panel-heading">
        <h2>Laravel 10|9|8 Word Dox File to PDF File Example - Tutsmake.com</h2>
      </div>
    
      <div class="panel-body">
          
        <form action="{{ URL('word-docx-to-pdf') }}" method="POST" enctype="multipart/form-data">
            @csrf
    
            <div class="mb-3">
                <strong class="form-label" for="inputFile">Upload Word File:</strong>
                <input 
                    type="file" 
                    name="file" 
                    id="inputFile">
            </div>
     
            <div class="mb-3">
                <button type="submit" class="btn btn-success">Convert Word To PDF</button>
            </div>
        
        </form>
        
      </div>
    </div>
</div>
</body>
      
</html>

Step 6: Test This App

Finally, open your terminal or cmd and run the following command into it to start development server for your laravel project:

Ezoic

php artisan serve

Now, you can convert word docx to pdf in laravel by visiting the following URL in your browser:

http://localhost:8000/word-docx-to-pdf

Conclusion

Congratulations 🎊! You have successfully learned how to convert word docx file to pdf file in Laravel 10|9|8 using Laravel DomPDF.

Recommended Laravel Tutorials

Ezoic

[ad_2]

Jaspreet Singh Ghuman

Jaspreet Singh Ghuman

Jassweb.com/

Passionate Professional Blogger, Freelancer, WordPress Enthusiast, Digital Marketer, Web Developer, Server Operator, Networking Expert. Empowering online presence with diverse skills.

jassweb logo

Jassweb always keeps its services up-to-date with the latest trends in the market, providing its customers all over the world with high-end and easily extensible internet, intranet, and extranet products.

Contact
Jassweb, Rai Chak, Punjab, India. 143518