This question already has answers here:
How to add indentation on bullet list?
(2 answers)
Indentation in generated PDF using JasperReports
(1 answer)
Closed 4 years ago.
I am producing reports with jasper 6.6.0 in PDF and docx.
The problem that I am facing is that I can not have a paragraph indention after the first line. The input text is a paragraph separated by new lines from a XML file:
<Literatur>Bjelland, EK; Wilkosz, P; Tanbo, TG; Eskild, A (2014). Is unilateral oophorectomy associated with age at menopause? A population study (the HUNT2 Survey). Human Reproduction 29(4): 835-41. DOI: 10.1093/humrep/deu026
Leitlinienprogramm Onkologie (AWMF, Deutsche Krebsgesellschaft, Deutsche Krebshilfe) (2012): S3-Leitlinie Diagnostik, Therapie und Nachsorge des Mammakarzinoms, Langversion 3.0, 2012, AWMF-Registernummer: 032/045OL, http://leitlinienprogramm-onkologie.de/Mammakarzinom.67.0.html (Recherchedatum: 15.10.2015). Stand: Juli 2012, gültig bis 30.06.2017.
</Literatur>
I add and put each line between and then the following style:
<style name="indent" style="Standard">
<box leftPadding="5"/>
<paragraph firstLineIndent="-5"/>
</style>
Using in text field:
<textField isStretchWithOverflow="true" isBlankWhenNull="true">
<reportElement style="indent" positionType="Float" x="0" y="159" width="465" height="28" uuid="f7184f30-82ee-44b4-8dcb-9d3d70ac3bc8"/>
<textFieldExpression><![CDATA[$F{Literatur}]]></textFieldExpression>
</textField>
as has been posted in Indentation in generated PDF using JasperReports but this mad the literatur part to vanish and not showing at all.
How can I produce export in PDF and docx just like my java export?
DOCX looks like:
PDF looks like:
Java export which is correct:
Related
This question already has answers here:
Jasper Reports PDF doesn't export cyrillic values
(1 answer)
How can I display "$£Ω€απ⅔" in Jasperserver PDF using iReport?
(2 answers)
Closed 3 years ago.
I am designing a jasper report using jasper (6.1.0) soft studio and jasper report is exported to pdf . Every static text on the report correctly display on pdf .
But bullets(Black squires in the code below ) are not in pdf.
I tried to change the encoding and I tried with font extension as well.
<staticText>
<reportElement positionType="Float" mode="Opaque" x="1" y="221" width="553" height="39" isRemoveLineWhenBlank="true" uuid="4b31d8f1-d37b-4976-87ac-8d8b90d73ee8"/>
<textElement textAlignment="Justified" verticalAlignment="Top" markup="none">
<font fontName="Allianz Sans" isBold="true"/>
</textElement>
<text>
<![CDATA[
◼ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
◼ bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
◼ cccccccccccccccccccccccccccccc
]]>
</text>
</staticText>
I expected to print pdf (with bullets (black squires))
◼ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
◼ bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
◼ cccccccccccccccccccccccccccccc
But result as follow (without bullets (black squires))
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
cccccccccccccccccccccccccccccc
Need a help to find out a reason for this or any solution.
I have four reports that are basically different formats of the same report and the following problem happens with three of them. I have a text field in the Detail's band that is marked as Stretch with Overflow. The problem is that it seems that it has some kind of characters limit, because with the following text (110 characters):
MAD.ESP.TAUARI(COURATARI GUIANENSIS AUBL.)SERRADA EM RIPA.KD.FAS.FSC 100% MED.19,1MMX38,1MMX2438,4MM DE COMP.
It's only printing:
MAD.ESP.TAUARI(COURATARI GUIANENSIS AUBL.)SERRADA EM RIPA.KD.FAS.FSC 100% MED.19,1MMX38,1MMX2438,4MM DE
As shown in the screen shots:
It's woth noting that when using the "preview" of the JasperStudio, the whole text appears normally for all of them.
Here's the text field's code of one of them. They're basically the same, changing the width, height and position.
<textField isStretchWithOverflow="true">
<reportElement x="26" y="0" width="76" height="10">
</reportElement>
<textElement textAlignment="Center" verticalAlignment="Top">
<font fontName="Arial" size="8"/>
</textElement>
<textFieldExpression><![CDATA[$F{descricaoProduto}]]></textFieldExpression>
</textField>
I'm using the 6.2.2 version of JasperReports.
EDIT:
I created a gist with a minimal version of the report that the problem happens:
Sample
I'm exporting it to PDF and using Arial as the font (I added a JAR with the Arial font).
Set the net.sf.jasperreports.export.pdf.force.linebreak.policy property to true (in jasperreports.properties or programmatically). See http://jasperreports.sourceforge.net/config.reference.html#net.sf.jasperreports.export.pdf.force.linebreak.policy
The property instructs the PDF exporter to use java.text.BreakIterator to determine where line breaks can occur in texts, which ensures that the line breaks at PDF export time match the breaks uses when the text was measured at report fill time. As a note, this might come with some impact on PDF exporting performance, but it shouldn't be dramatic.
I've hardcoded a Text field with the value
":$£Ω€απ⅔:"
to test if these characters will show in PDF
But it only prints as
:$£€:
I've tried changing the font to "Symbol" but that does not do the trick.
Note: I'm using iReport 5.5
I tried your characters using font-extensions in iReport, These are the steps that I took
Download (or use one on your pc) your desired ttf font (it need to support the characters), I used dejavu-serif.
Install the font in iReport or in Jasper soft studio (click links to understand how)
I used iReport 5.6 and did set the PDF-Encoding: Idenity-H (unicode with horizontal writing) and embedded the font in pdf. This was the code of my textField
<textField>
<reportElement x="8" y="15" width="100" height="20" uuid="41dc1200-091f-4799-a1d2-4622f88a0e84"/>
<textElement>
<font fontName="DejaVu Serif" size="13"/>
</textElement>
<textFieldExpression><![CDATA[":$£Ω€απ⅔:"]]></textFieldExpression>
</textField>
Export the font extension (this creates a .jar)
Add the jar to your classpath.
Export to pdf and enjoy the result.
This is an example of how to use any arbitrary font, if you like to
use DejaVu Sans or DejaVu Serif you can just include the jasper
report fonts library in classpath, hence these font are already included and mapped in library
I had posted a similar question and the above technique solved my problem, until one fine day I restarted the JasperServer context. I was now getting "PDF encoding not found" error when I tried to export the report to pdf.
To solve this problem I had to copy the iText-Asian.jar and Font-extension.jar in the lib folder of the jasperserver context.
"jasperserver/WEB-INF/lib". Once done restart the context and problem solved.
Hope it helps someone.
I'm having a problem with my PDF report where a String in a text field is truncated before filling the text field. The amount of missing characters (5-6) would not be enough to go over the end of the textField.
I added the text.truncate.at.char property to the report element but the String is still truncated (after displaying some more characters than before).
I also checked if there are other report elements blocking the end of the text field, but there are none.
Lastly I tried a potential fix I found and added "\n" to the end of the line, but that also did not help.
In iReport Designer the whole String is displayed.
PDF report
iReport Designer Preview
Does anyone know how to make Jasper Reports use the whole space in the text field?
PS: Allowing the text to overflow to the next line is not possible due to customer wishes.
I'm using Jasper Reports 5.5.2.
Edit:
The textField is part of a detail band in a subreport. I'm not allowed to share the whole .jrxml, but this is the code for the textField:
<textField>
<reportElement style="Unicode" mode="Opaque" x="0" y="2" width="467" height="17" forecolor="#FFFFFF" backcolor="#00007F" uuid="e810d7a4-6802-4620-af2f-4c385a9e80a6">
<property name="net.sf.jasperreports.text.truncate.at.char" value="true"/>
</reportElement>
<textElement verticalAlignment="Middle" markup="none">
<font size="10" isBold="true"/>
</textElement>
<textFieldExpression><![CDATA[" More Details - "+$F{Description} + " ("+$F{Id}+")"]]></textFieldExpression>
</textField>
The description is of variable length, the Id is a GUID. In this case there should still be more than enough space in the textField to display the whole GUID.
Here is another screenshot with isStretchWithOverflow="true":
The text is now displayed completely in the first line but the textField is larger which is not accepted by the customer.
Why is it different in pdf and iReport designer?
This is because iText (the library creating your pdf) is doing its "best effort" to render the font you have indicated in jrxml and its not good enough (it is using another font that is bigger...).
To avoid these problems you need to use font extensions and check your settings on style and textElement
Checklist to rendered font correctly in pdf
How to add font extension using iReport
OP solved as in comment:
Font extension installed, removing isBold="true" on textElement, since the style set to textElement had isBold="false"
I've hardcoded a Text field with the value
":$£Ω€απ⅔:"
to test if these characters will show in PDF
But it only prints as
:$£€:
I've tried changing the font to "Symbol" but that does not do the trick.
Note: I'm using iReport 5.5
I tried your characters using font-extensions in iReport, These are the steps that I took
Download (or use one on your pc) your desired ttf font (it need to support the characters), I used dejavu-serif.
Install the font in iReport or in Jasper soft studio (click links to understand how)
I used iReport 5.6 and did set the PDF-Encoding: Idenity-H (unicode with horizontal writing) and embedded the font in pdf. This was the code of my textField
<textField>
<reportElement x="8" y="15" width="100" height="20" uuid="41dc1200-091f-4799-a1d2-4622f88a0e84"/>
<textElement>
<font fontName="DejaVu Serif" size="13"/>
</textElement>
<textFieldExpression><![CDATA[":$£Ω€απ⅔:"]]></textFieldExpression>
</textField>
Export the font extension (this creates a .jar)
Add the jar to your classpath.
Export to pdf and enjoy the result.
This is an example of how to use any arbitrary font, if you like to
use DejaVu Sans or DejaVu Serif you can just include the jasper
report fonts library in classpath, hence these font are already included and mapped in library
I had posted a similar question and the above technique solved my problem, until one fine day I restarted the JasperServer context. I was now getting "PDF encoding not found" error when I tried to export the report to pdf.
To solve this problem I had to copy the iText-Asian.jar and Font-extension.jar in the lib folder of the jasperserver context.
"jasperserver/WEB-INF/lib". Once done restart the context and problem solved.
Hope it helps someone.