Sto riscontrando un problema di carattere con il mio report jasper in cui uno dei miei campi di testo più prolissi (l'ultimo in una banda di dettagli) viene interrotto nell'anteprima PDF e PDF ma non nel Anteprima interna.campo di testo jasper che viene troncato
ad es.
Anteprima interno:
Here is a fake description. It fits
perfectly, fitting just in the lines.
PDF Preview
Here is a fake description. It
fits perfectly, fitting just in the
Jasper è (apparentemente) utilizzando qualche algoritmo per capire quanto alto il campo dovrebbe essere, il mio testo è appena il montaggio, poi, quando il PDF è generato il testo avvolge e scompare sulla riga successiva.
Non sto utilizzando font personalizzati (solo il predefinito/implicito "SansSerif") e non si usano stili personalizzati oltre a grassetto/corsivo. Questo comportamento è dimostrabile sia nell'anteprima PDF di iReport sia nel PDF generato dal mio codice su Windows e MacOS (probabilmente Linux ha ancora il problema, ma il mio testo di esempio non mostrava il comportamento su Ubuntu).
Ho suonato con Stretch Type, Position Type e Stretch con Overflow, nonché spostato questo campo di testo sulla sua banda ma nessuno risolve questo bug (e molti di essi ne causano altri).
Ho avuto fortuna cambiando il font con gli altri font incorporati, ma questo mi dice solo che il mio esempio non funziona per quel particolare font, non che ho risolto il bug.
Qualsiasi consiglio sarebbe molto apprezzato.
Aggiornamento 1
ho provato l'aggiornamento da Jasper Reports 5.2.0 a 6.2.0 e 4.0.0 Jasper font a 6.0.0 ... nessun cambiamento.
Aggiornamento 2
provato a modificare il mio src/main/resources/jasperreports_extension.properties
e aggiungendo
net.sf.jasperreports.export.pdf.force.linebreak.policy=true
... nessun cambiamento.
(Da notare anche se nel mio caso d'uso Non posso usare isStretchWithOverflow="true"
, quindi questo potrebbe essere il motivo per cui non ha funzionato.)
Update 3
ho provato incorporare il font editing src/main/resources/jasperreports_extension.xml
e aggiungendo:
net.sf.jasperreports.extension.registry.factory.fonts=net.sf.jasperreports.engine.fonts.SimpleFontExtensionsRegistryFactory
net.sf.jasperreports.extension.simple.font.families.arialFontFamily=fonts/customFontFamilies.xml
customFontFamilies.xml:
<?xml version="1.0" encoding="UTF-8"?>
<fontFamilies>
<fontFamily name="ArialEM">
<normal><![CDATA[fonts/Arial/Arial.ttf]]></normal>
<bold><![CDATA[fonts/Arial/Arial Bold.ttf]]></bold>
<italic><![CDATA[fonts/Arial/Arial Italic.ttf]]></italic>
<boldItalic><![CDATA[fonts/Arial/Arial Bold Italic.ttf]]>/boldItalic>
<pdfEncoding><![CDATA[Cp1252]]></pdfEncoding>
<pdfEmbedded><![CDATA[true]]></pdfEmbedded>
</fontFamily>
</fontFamilies>
... nessun dado. (Anche se questo ha aiutato con un problema in cui il renderer PDF di Firefox non avrebbe reso i font in grassetto.)
Update 4
Ho notato che in tutti i provini casi ho potuto creare che la prima linea era vuota, così ho cambiato la particolare cella di essere verticale allineare superiore, che ha funzionato, ma ovviamente ha reso quella cella un disallineamento quando non c'era molto testo in esso.
Rottamato che come soluzione, ma potrebbe funzionare per qualcuno.
Update 5
A questo punto speriamo che sia chiaro che ho provato le soluzioni "reali" e li guardai tutti muoiono di una morte orribile. Quindi, entriamo nel regno della soluzione di hacking. Per prima cosa ho provato la soluzione di @ wmmci, ma la sua risposta cambia l'altezza della mia casella (poiché viene calcolata dinamicamente da Dynamic Jasper
). Ho notato che tutti gli esempi che potevo creare includevano periodi di parole all'interno della stringa, ad es. "Foo ... bar". Potrebbe non essere il tuo caso, ma era per me. Così ho iniettato uno "spazio per i capelli" ( 
) dopo gli spazi all'interno della parola.
Questa ovviamente non è una soluzione reale, solo un intervento temporaneo fino a quando non sono in grado di trovare altri esempi del bug.
Update 6
Ho controllato e io non avere @ problema di KarolisŠarapnickis con l'printOrder
. Ah bene. Io soldierò su. ;-)
Hai trovato una soluzione per questo problema? Ho lo stesso problema ed è così fastidioso ... sembra che Jasper non possa calcolare il numero massimo di caratteri se è un dato di input in grassetto e quindi taglia il residuo all'esportazione in PDF – Jesus
Per riferimento futuro, gli utenti con questo problema dovresti controllare che [font-extensions] (https://stackoverflow.com/documentation/jasper-reports/5773/font-extensions#t=201705312048127084075) siano usati correttamente –