Stampare una vista in PDF (senza GROSSA fatica ne accrocchi)

2 contenuti / 0 new
Ultimo contenuto
Stampare una vista in PDF (senza GROSSA fatica ne accrocchi)

E'molto utile usare le viste per generare dei PDF con dati presi dai nodi. Ho provato a usare dei moduli specifici ma li ho trovati scomodi e buggati.
Visto che farseli a mano non è la fine del modo ho provveduto in questo modo: il problema...
stampare il calendario delle commissioni consiliari di un Comune

1) Ho generato una vista con il solo display "default", i cui dati vengono presentati su una tabella composta da "nome commissione" e "data"
2) Ho installato il modulo libraries
3) ho scaricato la classe TCPDF e scompattata sotto libraries (all/libraries)
4) Ho creato un nuovo nodo con formato body PHP e ci ho incollato il codice sotto (ve l'ho commentato in modo che sia chiaro)

Richiamando la pagina si ottiene la stampa in PDF della vista

Nella realtà il mio codice è molto più lungo perchè aggiunge tutta una serie di cose e parte da un'altra vista (calendar), ma l'ho depurata di tutto per farvi capire i concetti di base (che vanno ampliati con appositi controlli)

<?php
// SELEZIONA LA VISTA
$view = views_get_view('calendario_commissioni_consiliar');
// SELEZIONA IL DISPLAY ED EVENTUALMENTE PASSA I PARAMETRI
$stampa = $view->preview('default', $args);
// ELIMINA LE SCRITTE Modifica/Esporta/Clona NEL CASO STIA STAMPANDO L'AMMINISTRARORE
$stampa = str_replace("Modifica", "", $stampa);
$stampa = str_replace("Esporta", "", $stampa);
$stampa = str_replace("Clona", "", $stampa); 
// PRENDI IL PATH DELLA tcpdf
$tcpdf_path = libraries_get_path('tcpdf');
// INCLUDI LA LIBRERIA
include_once( $tcpdf_path. '/tcpdf.php');
// CREA IL PDF
$pdf = new TCPDF('Landscape', PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
// IMPOSTA I DATI DI BASE DEL PDF
$pdf->SetCreator('Comune di....');
$pdf->SetAuthor('Comune di.....');
$pdf->SetTitle('Prova');
// AGGIUNGI PAGINA
$pdf->AddPage();
// AUTPUT DELLA VISTA IN PDF
$pdf->writeHTML($stile.$stampa, true, false, true, false, '');
// GENERA PDF
$pdf->Output('riunioni_commissioni.pdf', 'I');
// FERMATI!!! :-P
die();
?>

Drupal Version:

Molto interessante. Hai affrontato anche il problema di inserire il contenuto in una specie di carta intestata, con loghi e altre scritte in intestazione e piè di pagina?