Jasper Reports:证明分布式对齐文本字段/静态文本的合理性

Posted

技术标签:

【中文标题】Jasper Reports:证明分布式对齐文本字段/静态文本的合理性【英文标题】:Jasper Reports: justify distributed align Text Field/Static Text 【发布时间】:2015-09-03 20:05:22 【问题描述】:

我正在使用 Jasper Studio 6.1.0 设计 PDF 报告。

在我的报告中,我想将文本(文本字段或静态文本)对齐为“证明分布式”,如 microsoft excel(显示下图)。

http://i.stack.imgur.com/YtIbc.jpg

看了很多论坛都没有找到解决办法,请指教。

谢谢!

【问题讨论】:

一行文字写在不同的静态框ryt中 Jasper Report 不支持 excel 中的分布式(缩进)对齐 ***.com/a/57078555/2244676 【参考方案1】:

如果您正在寻找类似于 MS Word 中的软返回 (Shift+Enter) 的功能,并且无论如何都希望在 textElement 中实现 textAlignment="Justified",那么下面的技巧可能会有所帮助。pdf fragment example 在 TextField 中可以

设置textAlignment="Justified"textElement set 2 Tab Stops: "left" at 0px, "right" at the full width of textField 在你想换行的地方使用\t(或者	,如果你喜欢使用markup="html")。如果您想证明最后一行或单行的合理性,请使用\t\t(或		
         <textField>
                <reportElement x="0" y="270"  >                
                </reportElement>
                <textElement textAlignment="Justified">
                    <paragraph>
                        <tabStop position="0" alignment="Left"/>
                        <tabStop position="540" alignment="Right"/>
                    </paragraph>
                </textElement>
                <textFieldExpression><![CDATA["Lorem ipsum dolor sit amet\t\t"]]></textFieldExpression>
                </textField>

和整个例子:
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.18.1.final using JasperReports Library version 6.18.1-9d75d1969e774d4f179fb3be8401e98a0e6d1611  -->
<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="SoftReturn" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="e0df1bfc-6397-4160-9999-538487a658d0">
    <property name="com.jaspersoft.studio.data.defaultdataadapter" value="One Empty Record"/>
    <queryString>
        <![CDATA[]]>
    </queryString>
    <detail>
        <band  splitType="Stretch">
            <property name="com.jaspersoft.studio.unit.height" value="px"/>
            <textField>
                <reportElement x="0" y="70"   uuid="626378db-b76e-44b4-b768-e1996f005058">
                    <property name="com.jaspersoft.studio.unit.height" value="px"/>
                    <property name="com.jaspersoft.studio.unit.x" value="px"/>
                </reportElement>
                <box>
                    <pen lineWidth="0.25"/>
                </box>
                <textElement textAlignment="Justified">
                    <paragraph>
                        <tabStop position="0" alignment="Left"/>
                        <tabStop position="260" alignment="Right"/>
                    </paragraph>
                </textElement>
                <textFieldExpression><![CDATA["Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua." + "\n\n\n" + "Lorem ipsum dolor sit amet,\tconsectetur adipiscing elit,\tsed do eiusmod tempor incididunt ut labore et\tdolore magna aliqua.\t\t"]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="280" y="70"   uuid="626378db-b76e-44b4-b768-e1996f005058"/>
                <box>
                    <pen lineWidth="0.25"/>
                </box>
                <textElement textAlignment="Justified" markup="html">
                    <paragraph>
                        <tabStop position="0" alignment="Left"/>
                        <tabStop position="260" alignment="Right"/>
                    </paragraph>
                </textElement>
                <textFieldExpression><![CDATA["Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua." + "<br><br><br>" + "Lorem ipsum dolor sit amet,&amp#09;consectetur adipiscing elit,&amp#09;tsed do eiusmod tempor incididunt ut labore et&amp#09;dolore magna aliqua.&amp#09;&amp#09;"]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="0" y="238"   uuid="cf7e3f9c-b381-4ee4-9e9a-4b3b2cd4e0e7">
                    <property name="com.jaspersoft.studio.unit.x" value="px"/>
                </reportElement>
                <box>
                    <pen lineWidth="0.25"/>
                </box>
                <textElement textAlignment="Justified">
                    <paragraph>
                        <tabStop position="0" alignment="Left"/>
                        <tabStop position="540" alignment="Right"/>
                    </paragraph>
                </textElement>
                <textFieldExpression><![CDATA["Lorem ipsum dolor sit amet\t\t"]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="0" y="270"   uuid="658101ab-6f3b-499d-a717-0e6db6050986">
                    <property name="com.jaspersoft.studio.unit.x" value="px"/>
                </reportElement>
                <box>
                    <pen lineWidth="0.25"/>
                </box>
                <textElement textAlignment="Justified" markup="html">
                    <paragraph>
                        <tabStop position="0" alignment="Left"/>
                        <tabStop position="540" alignment="Right"/>
                    </paragraph>
                </textElement>
                <textFieldExpression><![CDATA["Lorem ipsum dolor sit amet&amp#09;&amp#09;"]]></textFieldExpression>
            </textField>
        </band>
    </detail>
</jasperReport>

【讨论】:

以上是关于Jasper Reports:证明分布式对齐文本字段/静态文本的合理性的主要内容,如果未能解决你的问题,请参考以下文章

Jasper Reports PDF 不导出西里尔文值

显示从 Jasper Reports Server 提供的 pdf

Jasper Reports在显示组详细信息之前总结了所有组

将系统日期快速放入文本字​​段

使用Node-Jasper包在Node.js中生成报告

单个 jasper 文档中的多个查询