Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Básicamente, se hace un post request al servidor y se le manda el html que se quiere convertir a pdf.
- // En el servidor, una utilidad toma el html y lo convierte a PDF, guarda el archivo y regresa el enlace para descargarlo.
- // Luego el Javascript muestra un mensajito con el enlace de descarga
- // Para convertir el pdf se usa el paquete de laravel llamado laravel-dompdf
- // Para mostar el mensaje se usa un plugin llamado jquery-toast-plugin
- // Este es el código HTML como referencia... También está el código Javascript.
- <!DOCTYPE html>
- <html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
- <head>
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <title>Laravel</title>
- </head>
- <body>
- <div id="contenido">
- <div style="width:400px">
- <h2 style="color:red; text-align: center">Titulo</h2>
- <p style="text-align: center">Phasellus lacinia, augue ac dictum tempor, nisi felis
- ornare magna, eu vehicula tellus enim eu neque. Fusce est eros,
- sagittis eget, interdum a, ornare suscipit, massa. Sed vehicula
- elementum ligula. Aliquam erat volutpat. Donec odio. Quisque nunc.
- Integer cursus feugiat magna.
- </p>
- </div>
- </div>
- <button onclick="hacer()">Pasar a PDF</button>
- <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery-toast-plugin/1.3.2/jquery.toast.min.css">
- <script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
- <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-toast-plugin/1.3.2/jquery.toast.min.js"></script>
- <script>
- function hacer() {
- $.ajax({
- url: '/convertir',
- type: 'get',
- data: { html: $('#contenido').html() },
- success: response => {
- $.toast({
- text: `<a href="${response.ruta}" target="_blank">Descargar pdf</a>`,
- icon: 'success',
- hideAfter: false
- })
- },
- error: error => { alert('Error al procesar la solicitud') }
- });
- }
- </script>
- </body>
- </html>
- // Este es el código PHP, que crea el pdf
- // Recuerda que debes instalar el paquete laravel-dompdf haciendo un 'composer require barryvdh/laravel-dompdf'
- Route::get('/convertir', function (Request $request) {
- $pdf = App::make('dompdf.wrapper');
- $pdf->loadHTML($request->html);
- // ruta donde va a guardar los pdf temporales
- $ruta = '/temp';
- // nombre del archivo pdf temporal
- $nombreArchivo = 'hola.pdf';
- // crea el directorio $ruta
- if (!is_dir(public_path($ruta))) {
- mkdir(public_path($ruta), 0755, true);
- }
- // guarda el pdf
- $pdf->save(public_path("{$ruta}/{$nombreArchivo}"));
- // devuelve la url del pdf para descargar
- return response()->json(['ruta' => asset("{$ruta}/{$nombreArchivo}")]);
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement