Angel Moral Posted April 30, 2019 Share Posted April 30, 2019 (edited) Quiero generar un documento pdf utilizando la librería FPDF, para ello he creado un modulo con los siguientes archivos: template -> task.tpl {extends file='page.tpl'} {block name='page_content_container'} <section> <p><label>Introduce ancho:</label> <input type="text" id="name" name="name" maxlength="8" size="10" /></p> <p><label>Introduce alto:</label> <input type="text" id="name" name="name" maxlength="8" size="10" /></p> <form method="post"> <button id="plantilla" value="val_1" name="but1">button 1</button> </form> </section> {/block} archivo js -> multipurpose.js $(document).ready(function(){ $('#plantilla').click(function(){ $.ajax({ url:mp_ajax, data:{ }, method: 'POST', success: function(data) { //NO SE QUE PONER AQUI }, error: function(result) { alert('error'); } }); }); }) Archivo php -> ajax.php <?php require_once('../../config/config.inc.php'); require_once('../../init.php'); require('../../vendor/fpdf/fpdf.php'); include('../../vendor/fpdf/fpdf.php'); ob_start(); require('vendor/fpdf/fpdf.php'); $pdf = new FPDF('P','mm',array(20,10));//Esto generaría un pdf con tamaño 20x10 $pdf->AddPage(); $pdf->Output(); Edited May 3, 2019 by Angel Moral (see edit history) Link to comment Share on other sites More sharing options...
Angel Moral Posted May 3, 2019 Author Share Posted May 3, 2019 Finalmente lo he solucionado de una forma más sencilla. He creado una pagina manualmente siguiendo el tutorial de Victor Rodenas @nadie https://victor-rodenas.com/2017/04/23/crear-pagina-php-en-prestashop-1-7/ Pero modificando el archivo nadie.tpl e incluyendo código javascript (incluyendo la librería jspdf) para generar el pdf con las medidas introducidas por el usuario. El código quedaría de la siguiente manera: {extends file='page.tpl'} {block name='page_title'} <span class="sitemap-title">{l s='Plantilla descargable' d='Shop.Theme'}</span> {/block} {block name='page_content_container'} <section> <p><label>Introduce alto:</label> <input type="number" id="alto" name="name" maxlength="8" size="10" />cm</p> <p><label>Introduce ancho:</label> <input type="number" id="ancho" name="name" maxlength="8" size="10" />cm</p> <button onclick = "printPDF()">Descargar Plantilla</button> <p id = "demo"</p> </section> {literal} <script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.3.4/jspdf.min.js" integrity="sha256-vIL0pZJsOKSz76KKVCyLxzkOT00vXs+Qz4fYRVMoDhw=" crossorigin="anonymous"> </script> {/literal} {literal} <script> console.log("Entro script"); function printPDF() { document.getElementById("demo"); var ancho = document.getElementById("ancho").value; var alto = document.getElementById("alto").value; var inancho = parseInt(ancho); var inalto = parseInt(alto); if(inancho>inalto){ const pdf = new jsPDF('l', 'cm', [ancho, alto]); pdf.save(); }else{ const pdf = new jsPDF('p', 'cm', [ancho, alto]); pdf.save(); } } </script> {/literal} {/block} La web quedaría de la siguiente forma: Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now