Usuario:ManuelRomero/Laravel/DOMPdf
Instalación de la librería
- Primero debemos buscar la librería que tengamos de dompdf, buscamos en composer a ver si hay algo ya adaptado a laravel
- Para ello vamos a la página de composer getcomposer.org y buscamos en paquetes
- Buscamos un paquete que tenga la palabra dompdf y laravel.
- Lo instalamos vía composer, para ello modificamos el fichero composer.json en la etiqueta requirede nuestro proyecto y actualizamos, de mode que nos quedará la sección require:
"require": { "php": "^7.2", "fideloper/proxy": "^4.0", "laravel/framework": "^6.2", "laravel/tinker": "^2.0", "barryvdh/laravel-dompdf": "^0.8" },
- Actualizamos el proyecto
composer update
- Una vex instalado, en la propia página de composer si clickamos sobre el paquete, nos aparece información de cómo actualizar los ficheros de configuración del proyecto para usarlo
- Instalaciones
- Por lo que editamos nuestro fichero config\app.php y agregamos las dos líneas:
//............ 'providers' => [ /* * Laravel Framework Service Providers... */ //.......................... /** * DomPdf */ Barryvdh\DomPDF\ServiceProvider::class ], /* |-------------------------------------------------------------------------- | Class Aliases |-------------------------------------------------------------------------- | | This array of class aliases will be registered when this application | is started. However, feel free to register as many as you wish as | the aliases are "lazy" loaded so they don't hinder performance. | */ 'aliases' => [ //...................... 'PDF' => Barryvdh\DomPDF\Facade::class ],
- Uso
- Ahora ya tenemos todo disponible para usarlo, vamos a crear una pequeña app para comporbar
1.- Creamos la ruta para a través de un controlador mostrar una vista de usuarios
- En el fichero routes/web.php agregamos la ruta:
Route::get("listadoUsuarios", 'UsuariosController@listado')->name("usuarios.list"); Route::post("listadoUsuarios", 'UsuariosController@pdf')->name("usuarios.pdf");
2.- Creamos el controlador UsuariosController y el método listado_usuarios listado
- Abrimos un terminal y en el directorio del proyecto, usando artisan
➜ php artisan make:controller UsuariosController Controller created successfully.
3.- Creamos los métodos de ester controlador listado() y pdf()
- En el fichero de la clase creado app/Http/Controllers/UsuarioController.php
- Como contenido vamos a retornar dos vistas que en principio solo tendrán una línea de texto
class UsuariosController extends Controller { public function listado(){ return View::("usuarios"); } public function pdf(){ return View::("pdf/usuarios"); } } *Posteriormente modificaremos estos controladores, antes vamos a terminar el ciclo MVC creando las vistas y verficando que todo funciona ok. 4.- Creamos las vistas
- En este punto podemos probar que funciona mostrando simplemente un texto en cada función y viendo que lo visualizamos
1.- Creamos una vista
- Creamos una vista que nos permita descargar una página que tenga algo de información con un elementos susceptible de evento para que al presionarlo podemos ejecutar la generación del pdf (Mostrarlo y/o descargarlo)
- Vamos a crear una lista de usuarios
Idioma no válido.
Necesita especificar un idioma como esto: <source lang="html4strict">...</source>
lenguajes soportados para sintaxis remarcada:
4cs, 6502acme, 6502kickass, 6502tasm, 68000devpac, abap, actionscript, actionscript3, ada, algol68, apache, applescript, apt_sources, arm, asm, asp, asymptote, autoconf, autohotkey, autoit, avisynth, awk, bascomavr, bash, basic4gl, bf, bibtex, blitzbasic, bnf, boo, c, c_loadrunner, c_mac, caddcl, cadlisp, cfdg, cfm, chaiscript, cil, clojure, cmake, cobol, coffeescript, cpp, cpp-qt, csharp, css, cuesheet, d, dcl, dcpu16, dcs, delphi, diff, div, dos, dot, e, ecmascript, eiffel, email, epc, erlang, euphoria, f1, falcon, fo, fortran, freebasic, freeswitch, fsharp, gambas, gdb, genero, genie, gettext, glsl, gml, gnuplot, go, groovy, gwbasic, haskell, haxe, hicest, hq9plus, html4strict, html5, icon, idl, ini, inno, intercal, io, j, java, java5, javascript, jquery, kixtart, klonec, klonecpp, latex, lb, ldif, lisp, llvm, locobasic, logtalk, lolcode, lotusformulas, lotusscript, lscript, lsl2, lua, m68k, magiksf, make, mapbasic, matlab, mirc, mmix, modula2, modula3, mpasm, mxml, mysql, nagios, netrexx, newlisp, nsis, oberon2, objc, objeck, ocaml, ocaml-brief, octave, oobas, oorexx, oracle11, oracle8, oxygene, oz, parasail, parigp, pascal, pcre, per, perl, perl6, pf, php, php-brief, pic16, pike, pixelbender, pli, plsql, postgresql, povray, powerbuilder, powershell, proftpd, progress, prolog, properties, providex, purebasic, pycon, pys60, python, q, qbasic, rails, rebol, reg, rexx, robots, rpmspec, rsplus, ruby, sas, scala, scheme, scilab, sdlbasic, smalltalk, smarty, spark, sparql, sql, stonescript, systemverilog, tcl, teraterm, text, thinbasic, tsql, typoscript, unicon, upc, urbi, uscript, vala, vb, vbnet, vedit, verilog, vhdl, vim, visualfoxpro, visualprolog, whitespace, whois, winbatch, xbasic, xml, xorg_conf, xpp, yaml, z80, zxbasic
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> <h2>Listado de usuarios</h2> <hr/> <form action="" > <input type="submit" value="crear PDF" name="submit"> </form> </body> </html>