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 File
- 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:
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:
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.
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:
<!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:
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.