.. _le_stampe/stampe_genropy/stampe_risorsa/risorse_stampa/html_res: La risorsa html_res =================== Devo definire il modulo risorsa di stampa, nella directory ``html_res`` all'interno della directory della table per la quale sto definendo la stampa. Supponiamo di avere una table ``cliente`` e di voler definire una stampa **estratto conto** che faccia riferimento ad essa. Dovrò andare a definire la risorsa al path: ``resources/tables/cliente/html_res/stampa_estrattoconto.py`` .. hint :: Se avete scaricato il progetto `Sandbox `_, potete trovare un esempio di risorsa di stampa di questo tipo all'interno del package **fatt** al path: ``resources/tables/fattura/html_res/mia_fattura.py`` TableScriptToHtml ~~~~~~~~~~~~~~~~~ Per questo tipo di risorsa di stampa occorre importare la classe ``TableScriptToHtml`` e definire l'oggetto stampa come classe che erediti da esso. :: from gnr.web.gnrbaseclasses import TableScriptToHtml class Main(TableScriptToHtml): page_height = 287 page_width = 198 row_table='fatt.fattura' doc_header_height = 20 doc_footer_height = 5 grid_header_height = 4 grid_footer_height = 0 row_mode='attribute' grid_row_height = 4 Scrivere una risorsa di stampa quindi consiste nel definire un oggetto che erediti da **TableScriptToHtml** fornendo i valori per le variabili di classe ed implementando opportuni metodi di hook. Di fatto, implementare una stampa in Genropy significa definire il set minimo di attributi e metodi per ottenere il risultato desiderato, rispetto ad un comportamento di default. Nel resto del capitolo spieghiamo esattamente come :ref:`definire queste risorse di stampa` .. raw:: html
**Parametri:** +------------------------+------+--------------------------------------------------+ | Nome parametro | Tipo | Descrizione | +========================+======+==================================================+ |maintable |T |La tabella dei record oggetto della stampa | | | |(contenuti in self.record) | +------------------------+------+--------------------------------------------------+ |row_table |T |La tabella delle righe della griglia di stampa. | | | |Può essere diversa dalla maintable, in quel caso | | | |basta specificare row_table = 'pkg.table' | +------------------------+------+--------------------------------------------------+ |page_height |L |Attributo facoltativo, permette di personalizzare | | | |l'altezza della pagina | +------------------------+------+--------------------------------------------------+ |page_width |L |Attributo facoltativo, permette di personalizzare | | | |la larghezza della pagina | +------------------------+------+--------------------------------------------------+ |doc_header_height |L |Attributo facoltativo, permette di specificare | | | |l'altezza del doc_header | +------------------------+------+--------------------------------------------------+ |doc_footer_height |L |Attributo facoltativo, permette di specificare | | | |l'altezza del doc_footer | +------------------------+------+--------------------------------------------------+ |grid_header_height |L |Attributo facoltativo, permette di specificare | | | |l'altezza del grid_header | +------------------------+------+--------------------------------------------------+ |grid_footer_height |L |Attributo facoltativo, permette di specificare | | | |l'altezza del grid_footer | +------------------------+------+--------------------------------------------------+ |grid_row_height |L |Attributo facoltativo, permette di specificare | | | |l'altezza di default di ogni singola riga della | | | |griglia di stampa | +------------------------+------+--------------------------------------------------+ |row_mode |T |Attributo facoltativo, permette di indicare se | | | |trattare le righe come valori, bag o attributi | | | |("value", "bag" o "attributes") | +------------------------+------+--------------------------------------------------+ |empty_row |T |Attributo personalizzato, permette di definire | | | |come trattare i record vuoti. Di default verrà | | | |stampata una pagina bianca, in alternativa, con | | | |empty_row=dict(), è possibile stampare il | | | |contenuto della pagina ma con una griglia vuota. È| | | |infine possibile specificare all'interno del dict | | | |i valori da indicare per il record vuoto, sulla | | | |base di quanto definito nel metodo gridStruct | +------------------------+------+--------------------------------------------------+ |splittedPages |L |Attributo facoltativo, permette di interrompere e | | | |riprendere dopo un tot di pagine (es. | | | |splittedPages=10) la generazione del pdf, in modo | | | |da rendere il processo di stampa più efficiente in| | | |corrispondenza di un elevato numero di pagine | +------------------------+------+--------------------------------------------------+ |virtual_columns |T |Permette di indicare le colonne virtuali da | | | |caricare per la stampa (es: | | | |virtual_columns='$n_fatture,$tot_fatturato'). | | | |Queste saranno infatti sempre compilate nella | | | |struct, ma non saranno disponibili di default in | | | |tutto il resto della stampa se non staticizzate | +------------------------+------+--------------------------------------------------+ |record_template |T |Permette di indicare il template da utilizzare per| | | |la stampa del record (es: record_template = | | | |'fattura_template') | +------------------------+------+--------------------------------------------------+ |pdf_service |T |Permette di indicare un service htmtopdf | | | |alternativo a quello di default (WeasyPrint). | +------------------------+------+--------------------------------------------------+