Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why is it wrapping text in Jasper Report 6.3?

Tags:

I use Jasper Report 6.3 library for exporting my report to PDF format. When I export if string length more than text field width jasper auto wrap text but in this case some text override like below picture

Problem

My text field properties:

stretch with overflow,
left indent: 3px,
right indent: 8px,
stretch type: Relative to Tallest object

Sample code

<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.2.2.final using JasperReports Library version 6.2.2  -->
<!-- 2016-09-03T20:46:49 -->
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="item_wise_mrp_with_image" pageWidth="595" pageHeight="842" whenNoDataType="BlankPage" columnWidth="575" leftMargin="10" rightMargin="10" topMargin="10" bottomMargin="10" whenResourceMissingType="Key" uuid="b7a946cd-ab42-4abe-b2f7-e616b2d38506">
    <property name="com.jaspersoft.studio.data.defaultdataadapter" value="One Empty Record"/>
    <parameter name="companyName" class="java.lang.String" isForPrompting="false"/>
    <parameter name="companyAddress" class="java.lang.String" isForPrompting="false"/>
    <parameter name="quoteNumber" class="java.lang.Integer" isForPrompting="false"/>
    <parameter name="quoteDate" class="java.util.Date" isForPrompting="false"/>
    <parameter name="customerName" class="java.lang.String" isForPrompting="false"/>
    <parameter name="customerAddress" class="java.lang.String"/>
    <parameter name="emailId" class="java.lang.String" isForPrompting="false"/>
    <parameter name="city" class="java.lang.String" isForPrompting="false">
        <parameterDescription><![CDATA[]]></parameterDescription>
    </parameter>
    <parameter name="mobileNo" class="java.lang.String" isForPrompting="false"/>
    <parameter name="clientMsg" class="java.lang.String"/>
    <parameter name="m_nrp" class="java.lang.String" isForPrompting="false"/>
    <parameter name="companyMobile" class="java.lang.String" isForPrompting="false"/>
    <parameter name="companyEmail" class="java.lang.String" isForPrompting="false"/>
    <queryString>
        <![CDATA[]]>
    </queryString>
    <field name="totalAmount" class="java.lang.Double"/>
    <field name="itemCode" class="java.lang.String"/>
    <field name="itemDescription" class="java.lang.String"/>
    <field name="quantity" class="java.lang.Integer"/>
    <field name="mrp" class="java.lang.Double"/>
    <field name="nrp" class="java.lang.Double"/>
    <variable name="tqty" class="java.lang.Integer" calculation="Sum">
        <variableExpression><![CDATA[$F{quantity}]]></variableExpression>
    </variable>
    <variable name="tprc" class="java.lang.Double" calculation="Sum">
        <variableExpression><![CDATA[$P{m_nrp}.equals( "MRP" )? $F{mrp}:$F{nrp}]]></variableExpression>
    </variable>
    <variable name="tamt" class="java.lang.Double" calculation="Sum">
        <variableExpression><![CDATA[$F{totalAmount}]]></variableExpression>
    </variable>
    <background>
        <band splitType="Stretch"/>
    </background>
    <detail>
        <band height="96" splitType="Stretch">
            <property name="com.jaspersoft.studio.unit.height" value="pixel"/>
            <frame>
                <reportElement x="0" y="0" width="575" height="96" uuid="7beb5f8d-7645-4156-95be-bef2533acba2">
                    <property name="com.jaspersoft.studio.unit.height" value="pixel"/>
                </reportElement>
                <box>
                    <leftPen lineWidth="0.25" lineColor="#BFBFBF"/>
                    <bottomPen lineWidth="0.25" lineColor="#BFBFBF"/>
                    <rightPen lineWidth="0.25" lineColor="#BFBFBF"/>
                </box>
                <textField>
                    <reportElement stretchType="RelativeToBandHeight" x="0" y="0" width="44" height="96" uuid="8b74ae61-7a6a-4cd7-a70d-857a5e434feb">
                        <property name="com.jaspersoft.studio.unit.width" value="pixel"/>
                        <property name="com.jaspersoft.studio.unit.height" value="pixel"/>
                    </reportElement>
                    <box bottomPadding="2" rightPadding="0">
                        <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                        <leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                        <bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                        <rightPen lineWidth="0.25" lineStyle="Solid" lineColor="#BFBFBF"/>
                    </box>
                    <textElement textAlignment="Center" verticalAlignment="Middle">
                        <font fontName="Calibri" size="11"/>
                        <paragraph leftIndent="3" rightIndent="5"/>
                    </textElement>
                    <textFieldExpression><![CDATA[$V{REPORT_COUNT}]]></textFieldExpression>
                </textField>
                <textField isStretchWithOverflow="true" isBlankWhenNull="true">
                    <reportElement stretchType="RelativeToBandHeight" x="45" y="0" width="100" height="96" uuid="b6e44305-fe66-4c42-ac7e-c22827e26baf">
                        <property name="com.jaspersoft.studio.unit.x" value="pixel"/>
                        <property name="com.jaspersoft.studio.unit.width" value="pixel"/>
                        <property name="com.jaspersoft.studio.unit.height" value="pixel"/>
                    </reportElement>
                    <box bottomPadding="2" rightPadding="0">
                        <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                        <leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                        <bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                        <rightPen lineWidth="0.25" lineStyle="Solid" lineColor="#BFBFBF"/>
                    </box>
                    <textElement textAlignment="Left" verticalAlignment="Middle">
                        <font fontName="Calibri" size="11"/>
                        <paragraph lineSpacingSize="0.0" leftIndent="3" rightIndent="8"/>
                    </textElement>
                    <textFieldExpression><![CDATA[$P{customerAddress}]]></textFieldExpression>
                </textField>
                <textField isStretchWithOverflow="true" isBlankWhenNull="true">
                    <reportElement stretchType="RelativeToBandHeight" x="145" y="0" width="235" height="96" uuid="c7f1aaf5-c7fb-4e24-8283-c9d5a819feef">
                        <property name="com.jaspersoft.studio.unit.x" value="pixel"/>
                        <property name="com.jaspersoft.studio.unit.width" value="pixel"/>
                        <property name="com.jaspersoft.studio.unit.height" value="pixel"/>
                    </reportElement>
                    <box bottomPadding="3" rightPadding="0">
                        <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                        <leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                        <bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                        <rightPen lineWidth="0.25" lineStyle="Solid" lineColor="#BFBFBF"/>
                    </box>
                    <textElement textAlignment="Left" verticalAlignment="Middle">
                        <font fontName="Calibri" size="11"/>
                        <paragraph lineSpacingSize="0.0" leftIndent="3" rightIndent="12"/>
                    </textElement>
                    <textFieldExpression><![CDATA[$P{clientMsg}]]></textFieldExpression>
                </textField>
                <textField>
                    <reportElement key="" stretchType="RelativeToBandHeight" x="380" y="0" width="40" height="96" uuid="70f88651-eefc-49df-898c-5a1eade29bac">
                        <property name="com.jaspersoft.studio.unit.x" value="pixel"/>
                        <property name="com.jaspersoft.studio.unit.width" value="pixel"/>
                        <property name="com.jaspersoft.studio.unit.height" value="pixel"/>
                    </reportElement>
                    <box bottomPadding="2" rightPadding="0">
                        <topPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                        <leftPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                        <bottomPen lineWidth="0.0" lineStyle="Solid" lineColor="#000000"/>
                        <rightPen lineWidth="0.25" lineStyle="Solid" lineColor="#BFBFBF"/>
                    </box>
                    <textElement textAlignment="Center" verticalAlignment="Middle">
                        <font fontName="Calibri" size="11"/>
                        <paragraph leftIndent="3" rightIndent="5"/>
                    </textElement>
                    <textFieldExpression><![CDATA[$F{quantity}]]></textFieldExpression>
                </textField>
            </frame>
        </band>
    </detail>
</jasperReport>

This is a sample code. I used Jasper Studio. To reproduce this error enter below inputs

customerAddress: ALD-CHR-769L250X190
clientMsg: Bottle Trap( With Internal Partition) 32mm Size With 250mm & 190mm Long Wall Connection Pipes & Wall Flange

How can I solve this problem?

like image 486
sancho Avatar asked Sep 03 '16 08:09

sancho


1 Answers

Yes this is a usual font-extension problem, I managed to reproduce your issue and adding font extension it got solved.

This is how to add font-extension in JasperSoft Studio, I had these settings

FontExtension settings

Running the report after adding the font-extension the problem was solved

Result

When you run outside of JasperSoft Studio, you need to create a font-extension jar (add to classpath) if you like to use the Calibri font, otherwise switch the font.

like image 77
Petter Friberg Avatar answered Sep 24 '22 17:09

Petter Friberg