Yii Framework Forum: Generazione PDF in Yii1 - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Generazione PDF in Yii1 Rate Topic: -----

#1 User is offline   Peppe 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 46
  • Joined: 12-January 13
  • Location:Macerata - Italy

Posted 30 March 2017 - 06:26 AM

Salve a tutti, ho bisogno di generare file PDF che riproducano le pagine normalmente prodotte mediante view.
Ho provato ad utilizzare l'estensione pdf (http://www.yiiframew...m/extension/pdf) ma ho problemi con l'installazione. Le due librerie utilizzate (mpdf e html2pdf) infatti richiedono a loro volta la "tcpdf", che però sembra debba essere installata attraverso composer.
Per l'applicazione non ho mai usato composer (e il wiki che ne descrive l'uso in Yii1 è deprecato) e non ho idea di come utilizzarlo per una singola libreria. Per altro mi chiedo se non c'è modo di installare la libreria senza passare per il composer, ma tutti i tentativi sono falliti.
Qualcuno può darmi una mano? Grazie

PS: ovviamente se c'è un'alternativa più semplice rispetto all'estensione che ho indicato, ben venga.
0

#2 User is offline   Fabrizio Caldarelli 

  • Master Member
  • PipPipPipPip
  • Yii
  • Group: Members
  • Posts: 1,058
  • Joined: 21-March 13
  • Location:Rome, Italy

Posted 30 March 2017 - 10:33 AM

Puoi installare TCPDF scaricando l'intero pacchetto da:

https://github.com/tecnickcom/tcpdf

se non hai possibilità/modo di utilizzare composer.
Yii2 by example: my book about Yii2
https://www.packtpub...nt/yii2-example
0

#3 User is offline   Peppe 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 46
  • Joined: 12-January 13
  • Location:Macerata - Italy

Posted 31 March 2017 - 03:29 AM

View PostFabrizio Caldarelli, on 30 March 2017 - 10:33 AM, said:

Puoi installare TCPDF scaricando l'intero pacchetto da:

https://github.com/tecnickcom/tcpdf

se non hai possibilità/modo di utilizzare composer.


Grazie, è una delle cose che ho già fatto ma il problema è come configurarlo all'interno dell'applicazione per poterlo utilizzare.
Nel frattempo però, dopo mille sbattimenti, c'è uno spiraglio di luce. Contrariamente a quanto immaginavo, mPDF non usa TCPDF ma lo sostituisce. E l'uso dell'estensione "pdf" con mPDF sembra funzionare.
Se la mia intuizione è corretta, l'estensione non richiede entrambe le librerie ma anche una sola delle due, con la differenza che mPDF è autonomo mentre html2pdf richiede TCPDF.
Ulteriori chiarimenti sono sempre bene accetti.
0

#4 User is offline   Giannix 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 349
  • Joined: 20-February 14

Posted 07 April 2017 - 09:44 AM

Ciao Peppe mPDF come dici tu è autonomo e puoi trovare una guida qui https://mpdf.github.io/ su come utilizzarlo. Puoi creare il pdf all' interno dell' action del Controller usando l' html;
$html = ' QUI INCLUDI TUTTO CIò CHE VUOI GENERARE , TABELLE ETC.'

In caso tu debba eseguire queries e poi inserire i dati recuperati dalle stesse all' interno del pdf, ricordati che le query vanno eseguite fuori da $html.
Esempio;
Eseguo la queries immaginaria:

$recupero_utenti = User::model()->findAllByAttributes(array('id'=>2));
foreach($recupero_utenti as $dati);

$html='
<html>
<head>
<link rel="stylesheet" type="text/css" href="'.Yii::app()->theme->baseUrl.'/css/main.css">
</head>
<body>

<table style="width:100%">
<tr>
<td>
echo Questo utente si chiama'.$dati->nome.' e si &egrave; iscritto in data etc etc etc etc ';
</td>
</tr>
</tbody>
</table>
</body>
</html>
';

$mPDF1 = Yii::app()->ePdf->mpdf('utf-8', 'A4', 0, '', 4, 4, 4, 0, 0, 0);
$mPDF1->WriteHTML($html);
$mPDF1->Output('L OUTPUT CHE PREFERISCI, O VISUALIZZI O SALVI O FAI CIO CHE VUOI');


oppure creare una vista (COME SE CREASSI UNA VISTA NORMALE PER UN RENDER) e renderizarla attraverso:
$this->layout="//se vuoi crei anche un layout personalizzato per la vista";
$mPDF1 = Yii::app()->ePdf->mpdf('utf-8', 'A4', 0, '', 4, 4, 4, 0, 0, 0);---->questi puoi gestirli come credi (trovi tutto sulla guida mpdf)

$mPDF1->WriteHTML($this->render('nom-vista-da-renderizare',array('model'=>$model e altri attributi che invii dal Controller alla vista),true));

$mPDF1->Output('NOME DEL TUO FILE'.pdf', EYiiPdf::OUTPUT_TO_DOWNLOAD);	<<<<---- IN QUESTO CASO ESEGUE IL DOWNLOAD DEL FILE AL POSTO DI APRIRLO DIRETTAMENTE.


Spero queste informazioni possano aiutarti. Io uso mPDF e mi trovo molto bene.
Un Saluto
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users