设置一个text框设置为 stretch with overflow,放在title区,里面放一个$p 然后默认显示字符串如下,如果这个字符串里面的逗号都是半角就可以完整显示这个字符串,如果都是全角的这个字符串就不能能显示完整.另外将title区唯一的text框和title区高度都设置为22如果在增加一个text框设置为 stretch with overflow,放summary区,里面放一个$p,默认显示"summary".如果title区的text内容足够多,并且逗号为半角,那导出pdf的时候title区和summary区之间就会有很大的留空.如果text内容少的话或者都改成全角的话就
中间就不会留空很大.但是用ireport显示的时候却没问题.只有导出pdf的时候就有问题了。
感觉都是因为字体造成的如果内容里面全角半角混合或者数字中文混合就会不太好!
不知道怎么解决啊?附上jrxml的全部内容
<?xml version="1.0" encoding="UTF-8"  ?>
<!-- Created with iReport - A designer for JasperReports -->
<!DOCTYPE jasperReport PUBLIC "//JasperReports//DTD Report Design//EN" "http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">
<jasperReport
 name="Untitled_report_1"
 columnCount="1"
 printOrder="Vertical"
 orientation="Portrait"
 pageWidth="595"
 pageHeight="842"
 columnWidth="535"
 columnSpacing="0"
 leftMargin="30"
 rightMargin="30"
 topMargin="20"
 bottomMargin="20"
 whenNoDataType="NoPages"
 isTitleNewPage="false"
 isSummaryNewPage="false">
<property name="ireport.scriptlethandling" value="0" />
<property name="ireport.encoding" value="UTF-8" />
<import value="java.util.*" />
<import value="net.sf.jasperreports.engine.*" />
<import value="net.sf.jasperreports.engine.data.*" /> <parameter name="test" isForPrompting="false" class="java.lang.String">
<defaultValueExpression ><![CDATA["大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,大千世界,end<br>"]]></defaultValueExpression>
</parameter> <background>
<band height="0"  isSplitAllowed="true" >
</band>
</background>
<title>
<band height="50"  isSplitAllowed="true" >
<textField isStretchWithOverflow="true" isBlankWhenNull="false" evaluationTime="Now" hyperlinkType="None"  hyperlinkTarget="Self" >
<reportElement
x="0"
y="0"
width="535"
height="50"
key="textField-1"/>
<box></box>
<textElement up="html">
<font fontName="宋体" pdfFontName="STSong-Light" isPdfEmbedded ="true" pdfEncoding ="UniGB-UCS2-H"/>
</textElement>
<textFieldExpression   class="java.lang.String"><![CDATA[$P{test}]]></textFieldExpression>
</textField>
</band>
</title>
<pageHeader>
<band height="0"  isSplitAllowed="true" >
</band>
</pageHeader>
<columnHeader>
<band height="0"  isSplitAllowed="true" >
</band>
</columnHeader>
<detail>
<band height="0"  isSplitAllowed="true" >
</band>
</detail>
<columnFooter>
<band height="0"  isSplitAllowed="true" >
</band>
</columnFooter>
<pageFooter>
<band height="0"  isSplitAllowed="true" >
</band>
</pageFooter>
<summary>
<band height="0"  isSplitAllowed="true" >
</band>
</summary>
<noData>
<band height="20"  isSplitAllowed="true" >
</band>
</noData>
</jasperReport>

解决方案 »

  1.   

    有没有设置pdf 字体?另外有没有加 itext-asian 包?
      

  2.   


    有啊.............   <textElement up="html">
                            <font fontName="宋体" pdfFontName="STSong-Light" isPdfEmbedded ="true" pdfEncoding ="UniGB-UCS2-H"/>
                        </textElement>
    这段就是用了itext-asian 包的字体啊.否则不可能导出中文啊.
      

  3.   

    http://topic.csdn.net/u/20090811/23/29a1f9cb-3177-40e4-b7ac-9c9eb8b98282.html