bloggers bloggers

Marco Napolitano
Messaggi: 79
Stelle: 0
Data: 17/02/22
Jader Jed Francia
Messaggi: 63
Stelle: 0
Data: 18/02/21
Paolo Gambetti
Messaggi: 2
Stelle: 0
Data: 11/11/19
Katia Pazzi
Messaggi: 1
Stelle: 0
Data: 27/06/19
Ezio Lombardi
Messaggi: 11
Stelle: 0
Data: 10/04/18
Chiara Mambretti
Messaggi: 25
Stelle: 0
Data: 27/02/17
Serena Traversi
Messaggi: 3
Stelle: 0
Data: 21/07/16
Francesco Falanga
Messaggi: 8
Stelle: 0
Data: 14/06/16
Antonio Musarra
Messaggi: 2
Stelle: 0
Data: 18/11/13
Simone Celli Marchi
Messaggi: 6
Stelle: 0
Data: 09/07/13
Indietro

Utilizzare HTMLComponent con JasperSoftStudio 6.3.1.final e Liferay 7.1.1

 

Quando si desidera visualizzare un contenuto HTML all'interno di un report PDF, TIBCO JasperSoft Studio

offre due possibilità:

1- impostare Markup/HTML in fase di design del template .jrxml;

2- utilizzare HTMLComponent.

La soluzione 1, non richiede di importare librerie aggiuntive e quindi è molto veloce, ma  l'insieme dei tag

HTML che  vengono convertiti correttamente in PDF è molto ridotto, ed in particolare tag di uso molto

comune come <strong>, <style>, <em> e <img> vengono ignorati.

La soluzione 2 è un poco più articolata, ma offre l'indubbio vantaggio di convertire correttamente un

numero maggiore di tag HTML.

HTMLComponent è una libreria prodotta da JasperSoft, che è stata ed è ancora ampiamente utilizzata,

come testimoniano i numerosi thread di discussione reperibili online.

Al momento, però, non viene distribuita dai repository Maven per il download e non è disponibile sulla

palette degli strumenti di TIBCO JasperSoft Studio 6.3.1.final.

Tuttavia JasperSoft Studio deve continuare a gestirla per ragioni di retrocompatibilità, e quindi, di fatto

quando nel template .jrxml trova questo codice:

         <band height="742">
        <componentElement>
            <reportElement x="0" y="0" width="555" height="742"/>
            <hc:html xmlns:hc="http://jasperreports.sourceforge.net/htmlcomponent"

xsi:schemaLocation="http://jasperreports.sourceforge.net/htmlcomponent

http://jasperreports.sourceforge.net/xsd/htmlcomponent.xsd"

scaleType="RetainShape" horizontalAlign="Left" verticalAlign="Top">
                <hc:htmlContentExpression><![CDATA[$P{myHtmlContent}]]></hc:htmlContentExpression>
            </hc:html>
        </componentElement>
    </band>

JasperSoft Studio è in grado di mostrare tutte le properties dell 'HTMLComponent in formato visuale e

consente di modificarle in modo assistito.

In aggiunta, le versioni più recenti di  JasperSoft Studio, come la 6.3.1 in questione, consentono di utilizzare

HTMLComponent all'interno del tool di palette 'Generic Element' indicando i seguenti valori.

Generic Type Name: htmlelement
Generic Type Namespace: http://jasperreports.sourceforge.net/jasperreports/html

In questo modo tutte le proprietà e i parametri possono essere visualizzate all'interno del pannello di

properties del 'Generic Element', anche se la loro modifica è meno assistita che nel caso precedente,

trattandosi di un tool generico.

Il risultato del nostro operato sarà, ad esempio, il seguente frammento sul template .jrxml.

            <band height="742">
        <genericElement> <reportElement x="0" y="0" width="555" height="742"/>
            <genericElementType namespace="http://jasperreports.sourceforge.net/jasperreports/html"

name="htmlelement"/>
            <genericElementParameter name="htmlContent">
                <valueExpression><![CDATA[$P{myHtmlContent}]]></valueExpression>
            </genericElementParameter>
            <genericElementParameter name="scaleType">
                <valueExpression><![CDATA["RetainShape"]]></valueExpression>
            </genericElementParameter>
            <genericElementParameter name="verticalAlign">
                <valueExpression><![CDATA["Top"]]></valueExpression>
            </genericElementParameter>
            <genericElementParameter name="horizontalAlign">
                <valueExpression><![CDATA["Left"]]></valueExpression>
            </genericElementParameter>
        </genericElement>
    </band>
 

Comunque la si utilizzi, la libreria HTMLComponent, necessita al momento di essere configurata su Liferay

mediante i seguenti passaggi.

Queste istruzioni si riferiscono al progetto in cui è già installato e funzionante JasperReport, cioè in cui sono

state dichiarate le dipendenze dalle librerie di JasperReport.

1- Copiare nella cartella src/main/resources/lib tutti i jar contenuti in nella cartella 

   Jaspersoft Studio-6.3.1.final\configuration\org.eclipse.osgi\38\0\.cp\lib

2- Aggiungere al build.gradle le dipendenze

   dependencies {

                  compileInclude  name: 'htmlcomponent'
                  compileInclude  name: 'core-renderer'
                  compileInclude  name: 'jtidy-r938'

                 //oppure, se si preferisce, 'jtidy' può essere scaricato dai repository Maven:

                //compileInclude group: 'net.sf.jtidy', name: 'jtidy', version: 'r938'

   }

3- Indicare sul build.gradle la locazione in cui si trovano queste librerie

   repositories {
       flatDir {
             dirs 'src/main/resources/lib'
       }
   }
 
 

4- Aggiungere queste esclusioni al file bnd.bnd

    !org.xhtmlrenderer.test,\
    !org.xhtmlrenderer.test.*,\

A questo punto si è pronti per produrre i PDF partendo da un contenuto HTML.

Va ricordato che tutto il contenuto HTML viene trasformato da questo componente in un' unica immagine,

che pertanto potrebbe essere visualizzata diversamente rispetto ad un browser HTML e a seconda del

formato di esportazione utilizzato.

 

 

 

 

 

Commenti
Nessun commento. Vuoi essere il primo.