gpt4 book ai didi

jasper-reports - 如何在iReport的背景带中创建水印

转载 作者:行者123 更新时间:2023-12-03 18:19:52 58 4
gpt4 key购买 nike

我正在尝试使用报告中的文本创建水印。例如有一个类似 this is a good report 的文本在报告的背景上重复水平打印。我知道这可以在后台乐队中完成,但不知道如何。

更新
您的解决方案有效。我想以另一种方式实现这一点。我想在后台重复打印相同的文本。假设我想打印文本 welcome to a new year .我希望它以这种方式打印

welcome to a new year welcome to a new year welcome to a new year welcome to a new year
welcome to a new year welcome to a new year welcome to a new year welcome to a new year
welcome to a new year welcome to a new year welcome to a new year welcome to a new year
welcome to a new year welcome to a new year welcome to a new year welcome to a new year
welcome to a new year welcome to a new year welcome to a new year welcome to a new year
...

所有这些都将在后台进行。我可以在不手动创建文本字段来填充页面的情况下实现类似的功能吗?

最佳答案

你是对的。您可以使用背景带打印水印文本(或图片)。
您应该设置 高度 对于这个乐队 - 我认为最好将这个乐队的高度设置为与报告的高度相同。

例如,对于 A4 格式,我设置了 802 背景带高度的像素。计算这个数字的公式是:报告高度( 842 像素为 A4 格式) - 左边距的 宽度( 20 在我的情况下) - 右边距宽度( 20 在我的情况下)。

设置背景带的大小后,您可以放置​​ 图片 静态文本(文本字段)此(背景)带的元素。

您可以旋转 的文字静态文本(文本字段)元素在 的帮助下旋转 属性。此属性的可用值为:

  • 无(无旋转 - 0 度),
  • 左(旋转 270 度),
  • 向右(旋转 90 度),
  • 倒置(旋转 180 度)。

  • 在工作示例中,我使用样式来设置 旋转 的属性文本字段 对于一个元素,我已将此属性的值直接设置为 文本字段 元素:

    <?xml version="1.0" encoding="UTF-8"?>
    <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="watermark_sample" language="groovy" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="bc290dd1-903c-4740-8484-16a2ebe872d2">
    <property name="ireport.zoom" value="1.0"/>
    <property name="ireport.x" value="0"/>
    <property name="ireport.y" value="0"/>
    <style name="Rotated180" mode="Opaque" forecolor="#FF33CC" hAlign="Center" vAlign="Middle" rotation="UpsideDown" fontName="Curlz MT" fontSize="40"/>
    <style name="Rotated270" mode="Opaque" forecolor="#FF33CC" hAlign="Center" vAlign="Middle" rotation="Left" fontName="Curlz MT" fontSize="40"/>
    <style name="Rotated90" mode="Opaque" forecolor="#FF33CC" hAlign="Center" vAlign="Middle" rotation="Right" fontName="Curlz MT" fontSize="40"/>
    <style name="NotRotated" mode="Opaque" forecolor="#FF33CC" hAlign="Center" vAlign="Middle" rotation="None" fontName="Curlz MT" fontSize="40"/>
    <queryString>
    <![CDATA[SELECT ID, NAME, COST FROM PRODUCT ORDER BY NAME]]>
    </queryString>
    <field name="ID" class="java.lang.Integer"/>
    <field name="NAME" class="java.lang.String"/>
    <field name="COST" class="java.math.BigDecimal"/>
    <background>
    <band height="802" splitType="Stretch">
    <image hAlign="Center">
    <reportElement uuid="42c96db8-4afd-4834-ba69-6b211df0c42f" style="Rotated180" mode="Opaque" x="118" y="372" width="318" height="58"/>
    <imageExpression><![CDATA["D:\\java\\jasper_reports\\happy_new_year_h.png"]]></imageExpression>
    </image>
    <staticText>
    <reportElement uuid="d7401e33-f1b3-49ca-85d1-2923d82508f6" style="NotRotated" x="106" y="22" width="342" height="63"/>
    <textElement/>
    <text><![CDATA[Happy New Year!]]></text>
    </staticText>
    <staticText>
    <reportElement uuid="d7401e33-f1b3-49ca-85d1-2923d82508f6" style="Rotated270" x="24" y="236" width="93" height="330"/>
    <textElement/>
    <text><![CDATA[Happy New Year!]]></text>
    </staticText>
    <staticText>
    <reportElement uuid="d7401e33-f1b3-49ca-85d1-2923d82508f6" style="Rotated90" x="445" y="236" width="93" height="330"/>
    <textElement/>
    <text><![CDATA[Happy New Year!]]></text>
    </staticText>
    <staticText>
    <reportElement uuid="d7401e33-f1b3-49ca-85d1-2923d82508f6" style="Rotated180" x="106" y="702" width="342" height="63"/>
    <textElement/>
    <text><![CDATA[Happy New Year!]]></text>
    </staticText>
    <staticText>
    <reportElement uuid="3bdd5d67-94f0-457f-8477-b1d0438d7bc9" mode="Opaque" x="79" y="85" width="428" height="139" forecolor="#9999FF"/>
    <textElement textAlignment="Center" verticalAlignment="Middle" rotation="Right">
    <font fontName="Edwardian Script ITC" size="40" isItalic="true"/>
    </textElement>
    <text><![CDATA[Happy New Year!]]></text>
    </staticText>
    </band>
    </background>
    <title>
    <band height="79" splitType="Stretch">
    <staticText>
    <reportElement uuid="6d708618-09e4-433d-ab48-bb9cbd0b832b" x="92" y="29" width="370" height="20"/>
    <textElement>
    <font size="14" isBold="true" isItalic="true"/>
    </textElement>
    <text><![CDATA[Sample of report with watermark]]></text>
    </staticText>
    </band>
    </title>
    <columnHeader>
    <band height="20" splitType="Stretch">
    <staticText>
    <reportElement uuid="414160e2-41c4-4326-8ec8-ff7c230ac2c3" mode="Opaque" x="0" y="0" width="100" height="20" forecolor="#000000" backcolor="#3399FF"/>
    <box leftPadding="10" rightPadding="10">
    <topPen lineWidth="1.0"/>
    <leftPen lineWidth="1.0"/>
    <bottomPen lineWidth="1.0"/>
    <rightPen lineWidth="1.0"/>
    </box>
    <textElement textAlignment="Center" verticalAlignment="Middle">
    <font isBold="true" isItalic="true"/>
    </textElement>
    <text><![CDATA[Id]]></text>
    </staticText>
    <staticText>
    <reportElement uuid="414160e2-41c4-4326-8ec8-ff7c230ac2c3" mode="Opaque" x="200" y="0" width="100" height="20" forecolor="#000000" backcolor="#3399FF"/>
    <box leftPadding="10" rightPadding="10">
    <topPen lineWidth="1.0"/>
    <leftPen lineWidth="1.0"/>
    <bottomPen lineWidth="1.0"/>
    <rightPen lineWidth="1.0"/>
    </box>
    <textElement textAlignment="Center" verticalAlignment="Middle">
    <font isBold="true" isItalic="true"/>
    </textElement>
    <text><![CDATA[Cost]]></text>
    </staticText>
    <staticText>
    <reportElement uuid="414160e2-41c4-4326-8ec8-ff7c230ac2c3" mode="Opaque" x="100" y="0" width="100" height="20" forecolor="#000000" backcolor="#3399FF"/>
    <box leftPadding="10" rightPadding="10">
    <topPen lineWidth="1.0"/>
    <leftPen lineWidth="1.0"/>
    <bottomPen lineWidth="1.0"/>
    <rightPen lineWidth="1.0"/>
    </box>
    <textElement textAlignment="Center" verticalAlignment="Middle">
    <font isBold="true" isItalic="true"/>
    </textElement>
    <text><![CDATA[Name]]></text>
    </staticText>
    </band>
    </columnHeader>
    <detail>
    <band height="20" splitType="Stretch">
    <textField>
    <reportElement uuid="5715c691-0b39-4530-9009-3b7179bb06f5" x="0" y="0" width="100" height="20"/>
    <box leftPadding="10" rightPadding="10">
    <leftPen lineWidth="1.0"/>
    <bottomPen lineWidth="1.0"/>
    <rightPen lineWidth="1.0"/>
    </box>
    <textElement textAlignment="Right"/>
    <textFieldExpression><![CDATA[$F{ID}]]></textFieldExpression>
    </textField>
    <textField>
    <reportElement uuid="5715c691-0b39-4530-9009-3b7179bb06f5" x="100" y="0" width="100" height="20"/>
    <box leftPadding="10">
    <leftPen lineWidth="1.0"/>
    <bottomPen lineWidth="1.0"/>
    <rightPen lineWidth="1.0"/>
    </box>
    <textElement/>
    <textFieldExpression><![CDATA[$F{NAME}]]></textFieldExpression>
    </textField>
    <textField>
    <reportElement uuid="5715c691-0b39-4530-9009-3b7179bb06f5" x="200" y="0" width="100" height="20"/>
    <box leftPadding="10" rightPadding="10">
    <leftPen lineWidth="1.0"/>
    <bottomPen lineWidth="1.0"/>
    <rightPen lineWidth="1.0"/>
    </box>
    <textElement textAlignment="Right"/>
    <textFieldExpression><![CDATA[$F{COST}]]></textFieldExpression>
    </textField>
    </band>
    </detail>
    </jasperReport>

    图片 元素不支持 旋转 属性,但您可以手动创建任何您想要的图像。

    备注 :在这个示例中,我使用了 模式=“不透明”文本字段 图片 元素。

    结果将是(通过 iReport 预览功能):
    The generated report

    为了解决你的问题( 几个 文本作为水印)我放了几个 文本字段 元素到背景乐队。报告模板为:

    <?xml version="1.0" encoding="UTF-8"?>
    <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="watermark_sample" language="groovy" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="bc290dd1-903c-4740-8484-16a2ebe872d2">
    <property name="ireport.zoom" value="1.0"/>
    <property name="ireport.x" value="0"/>
    <property name="ireport.y" value="68"/>
    <queryString>
    <![CDATA[SELECT ID, NAME, COST FROM PRODUCT ORDER BY NAME]]>
    </queryString>
    <field name="ID" class="java.lang.Integer"/>
    <field name="NAME" class="java.lang.String"/>
    <field name="COST" class="java.math.BigDecimal"/>
    <background>
    <band height="802" splitType="Stretch">
    <staticText>
    <reportElement uuid="3bdd5d67-94f0-457f-8477-b1d0438d7bc9" mode="Transparent" x="63" y="112" width="428" height="56" forecolor="#808080"/>
    <textElement textAlignment="Center" verticalAlignment="Middle" rotation="None">
    <font fontName="Serif" size="40" isItalic="true"/>
    </textElement>
    <text><![CDATA[this is a good report]]></text>
    </staticText>
    <staticText>
    <reportElement uuid="3bdd5d67-94f0-457f-8477-b1d0438d7bc9" mode="Transparent" x="63" y="272" width="428" height="56" forecolor="#808080"/>
    <textElement textAlignment="Center" verticalAlignment="Middle" rotation="None">
    <font fontName="Serif" size="40" isItalic="true"/>
    </textElement>
    <text><![CDATA[this is a good report]]></text>
    </staticText>
    <staticText>
    <reportElement uuid="3bdd5d67-94f0-457f-8477-b1d0438d7bc9" mode="Transparent" x="63" y="432" width="428" height="56" forecolor="#808080"/>
    <textElement textAlignment="Center" verticalAlignment="Middle" rotation="None">
    <font fontName="Serif" size="40" isItalic="true"/>
    </textElement>
    <text><![CDATA[this is a good report]]></text>
    </staticText>
    <staticText>
    <reportElement uuid="3bdd5d67-94f0-457f-8477-b1d0438d7bc9" mode="Transparent" x="63" y="594" width="428" height="56" forecolor="#808080"/>
    <textElement textAlignment="Center" verticalAlignment="Middle" rotation="None">
    <font fontName="Serif" size="40" isItalic="true"/>
    </textElement>
    <text><![CDATA[this is a good report]]></text>
    </staticText>
    </band>
    </background>
    <title>
    <band height="79" splitType="Stretch">
    <staticText>
    <reportElement uuid="6d708618-09e4-433d-ab48-bb9cbd0b832b" x="92" y="29" width="370" height="20"/>
    <textElement>
    <font size="14" isBold="true" isItalic="true"/>
    </textElement>
    <text><![CDATA[Sample of report with watermark]]></text>
    </staticText>
    </band>
    </title>
    <columnHeader>
    <band height="20" splitType="Stretch">
    <staticText>
    <reportElement uuid="414160e2-41c4-4326-8ec8-ff7c230ac2c3" mode="Opaque" x="0" y="0" width="100" height="20" forecolor="#000000" backcolor="#3399FF"/>
    <box leftPadding="10" rightPadding="10">
    <topPen lineWidth="1.0"/>
    <leftPen lineWidth="1.0"/>
    <bottomPen lineWidth="1.0"/>
    <rightPen lineWidth="1.0"/>
    </box>
    <textElement textAlignment="Center" verticalAlignment="Middle">
    <font isBold="true" isItalic="true"/>
    </textElement>
    <text><![CDATA[Id]]></text>
    </staticText>
    <staticText>
    <reportElement uuid="414160e2-41c4-4326-8ec8-ff7c230ac2c3" mode="Opaque" x="200" y="0" width="100" height="20" forecolor="#000000" backcolor="#3399FF"/>
    <box leftPadding="10" rightPadding="10">
    <topPen lineWidth="1.0"/>
    <leftPen lineWidth="1.0"/>
    <bottomPen lineWidth="1.0"/>
    <rightPen lineWidth="1.0"/>
    </box>
    <textElement textAlignment="Center" verticalAlignment="Middle">
    <font isBold="true" isItalic="true"/>
    </textElement>
    <text><![CDATA[Cost]]></text>
    </staticText>
    <staticText>
    <reportElement uuid="414160e2-41c4-4326-8ec8-ff7c230ac2c3" mode="Opaque" x="100" y="0" width="100" height="20" forecolor="#000000" backcolor="#3399FF"/>
    <box leftPadding="10" rightPadding="10">
    <topPen lineWidth="1.0"/>
    <leftPen lineWidth="1.0"/>
    <bottomPen lineWidth="1.0"/>
    <rightPen lineWidth="1.0"/>
    </box>
    <textElement textAlignment="Center" verticalAlignment="Middle">
    <font isBold="true" isItalic="true"/>
    </textElement>
    <text><![CDATA[Name]]></text>
    </staticText>
    </band>
    </columnHeader>
    <detail>
    <band height="20" splitType="Stretch">
    <textField>
    <reportElement uuid="5715c691-0b39-4530-9009-3b7179bb06f5" x="0" y="0" width="100" height="20"/>
    <box leftPadding="10" rightPadding="10">
    <leftPen lineWidth="1.0"/>
    <bottomPen lineWidth="1.0"/>
    <rightPen lineWidth="1.0"/>
    </box>
    <textElement textAlignment="Right"/>
    <textFieldExpression><![CDATA[$F{ID}]]></textFieldExpression>
    </textField>
    <textField>
    <reportElement uuid="5715c691-0b39-4530-9009-3b7179bb06f5" x="100" y="0" width="100" height="20"/>
    <box leftPadding="10">
    <leftPen lineWidth="1.0"/>
    <bottomPen lineWidth="1.0"/>
    <rightPen lineWidth="1.0"/>
    </box>
    <textElement/>
    <textFieldExpression><![CDATA[$F{NAME}]]></textFieldExpression>
    </textField>
    <textField>
    <reportElement uuid="5715c691-0b39-4530-9009-3b7179bb06f5" x="200" y="0" width="100" height="20"/>
    <box leftPadding="10" rightPadding="10">
    <leftPen lineWidth="1.0"/>
    <bottomPen lineWidth="1.0"/>
    <rightPen lineWidth="1.0"/>
    </box>
    <textElement textAlignment="Right"/>
    <textFieldExpression><![CDATA[$F{COST}]]></textFieldExpression>
    </textField>
    </band>
    </detail>
    </jasperReport>

    备注 :在这个示例中,我使用了 模式="透明"文本字段 元素。

    报告的设计(在 iReport 中):

    enter image description here

    结果将是(通过 iReport 预览功能):
    Generated report in iReport

    您可以在 Watermark across the page in JasperReports 中找到更多信息如果您想设置自定义旋转角度,请发布。

    更新 :您可以解决您的第二个问题,例如,在 StringUtils.repeat(java.lang.String, int) 的帮助下方法来自 Commons Lang API .

    您可以添加 进口指令(在我的示例中为 <import value="org.apache.commons.lang3.StringUtils"/>)到您的报告模板并使用如下表达式:

    <textFieldExpression><![CDATA[StringUtils.repeat("Welcome to a New Year! ", $P{numberOfRepeats})]]></textFieldExpression>

    jrxml 文件:

    <?xml version="1.0" encoding="UTF-8"?>
    <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="watermark_sample" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="bc290dd1-903c-4740-8484-16a2ebe872d2">
    <import value="org.apache.commons.lang3.StringUtils"/>
    <parameter name="numberOfRepeats" class="java.lang.Integer" isForPrompting="false">
    <defaultValueExpression><![CDATA[10]]></defaultValueExpression>
    </parameter>
    <queryString>
    <![CDATA[SELECT ID, NAME, COST FROM PRODUCT ORDER BY NAME]]>
    </queryString>
    <field name="ID" class="java.lang.Integer"/>
    <field name="NAME" class="java.lang.String"/>
    <field name="COST" class="java.math.BigDecimal"/>
    <background>
    <band height="802" splitType="Stretch">
    <textField isStretchWithOverflow="true">
    <reportElement uuid="26290245-c5cf-4f28-b637-c5b0253910a5" mode="Transparent" x="21" y="112" width="470" height="56" forecolor="#808080"/>
    <textElement textAlignment="Center" verticalAlignment="Middle" rotation="None" markup="none">
    <font fontName="Serif" size="20" isItalic="true"/>
    </textElement>
    <textFieldExpression><![CDATA[StringUtils.repeat("Welcome to a New Year! ", $P{numberOfRepeats})]]></textFieldExpression>
    </textField>
    </band>
    </background>
    <title>
    <band height="79" splitType="Stretch">
    <staticText>
    <reportElement uuid="6d708618-09e4-433d-ab48-bb9cbd0b832b" x="92" y="29" width="370" height="20"/>
    <textElement>
    <font size="14" isBold="true" isItalic="true"/>
    </textElement>
    <text><![CDATA[Sample of report with watermark]]></text>
    </staticText>
    </band>
    </title>
    <columnHeader>
    <band height="20" splitType="Stretch">
    <staticText>
    <reportElement uuid="414160e2-41c4-4326-8ec8-ff7c230ac2c3" mode="Opaque" x="0" y="0" width="100" height="20" forecolor="#000000" backcolor="#3399FF"/>
    <box leftPadding="10" rightPadding="10">
    <topPen lineWidth="1.0"/>
    <leftPen lineWidth="1.0"/>
    <bottomPen lineWidth="1.0"/>
    <rightPen lineWidth="1.0"/>
    </box>
    <textElement textAlignment="Center" verticalAlignment="Middle">
    <font isBold="true" isItalic="true"/>
    </textElement>
    <text><![CDATA[Id]]></text>
    </staticText>
    <staticText>
    <reportElement uuid="414160e2-41c4-4326-8ec8-ff7c230ac2c3" mode="Opaque" x="200" y="0" width="100" height="20" forecolor="#000000" backcolor="#3399FF"/>
    <box leftPadding="10" rightPadding="10">
    <topPen lineWidth="1.0"/>
    <leftPen lineWidth="1.0"/>
    <bottomPen lineWidth="1.0"/>
    <rightPen lineWidth="1.0"/>
    </box>
    <textElement textAlignment="Center" verticalAlignment="Middle">
    <font isBold="true" isItalic="true"/>
    </textElement>
    <text><![CDATA[Cost]]></text>
    </staticText>
    <staticText>
    <reportElement uuid="414160e2-41c4-4326-8ec8-ff7c230ac2c3" mode="Opaque" x="100" y="0" width="100" height="20" forecolor="#000000" backcolor="#3399FF"/>
    <box leftPadding="10" rightPadding="10">
    <topPen lineWidth="1.0"/>
    <leftPen lineWidth="1.0"/>
    <bottomPen lineWidth="1.0"/>
    <rightPen lineWidth="1.0"/>
    </box>
    <textElement textAlignment="Center" verticalAlignment="Middle">
    <font isBold="true" isItalic="true"/>
    </textElement>
    <text><![CDATA[Name]]></text>
    </staticText>
    </band>
    </columnHeader>
    <detail>
    <band height="20" splitType="Stretch">
    <textField>
    <reportElement uuid="5715c691-0b39-4530-9009-3b7179bb06f5" x="0" y="0" width="100" height="20"/>
    <box leftPadding="10" rightPadding="10">
    <leftPen lineWidth="1.0"/>
    <bottomPen lineWidth="1.0"/>
    <rightPen lineWidth="1.0"/>
    </box>
    <textElement textAlignment="Right"/>
    <textFieldExpression><![CDATA[$F{ID}]]></textFieldExpression>
    </textField>
    <textField>
    <reportElement uuid="5715c691-0b39-4530-9009-3b7179bb06f5" x="100" y="0" width="100" height="20"/>
    <box leftPadding="10">
    <leftPen lineWidth="1.0"/>
    <bottomPen lineWidth="1.0"/>
    <rightPen lineWidth="1.0"/>
    </box>
    <textElement/>
    <textFieldExpression><![CDATA[$F{NAME}]]></textFieldExpression>
    </textField>
    <textField>
    <reportElement uuid="5715c691-0b39-4530-9009-3b7179bb06f5" x="200" y="0" width="100" height="20"/>
    <box leftPadding="10" rightPadding="10">
    <leftPen lineWidth="1.0"/>
    <bottomPen lineWidth="1.0"/>
    <rightPen lineWidth="1.0"/>
    </box>
    <textElement textAlignment="Right"/>
    <textFieldExpression><![CDATA[$F{COST}]]></textFieldExpression>
    </textField>
    </band>
    </detail>
    </jasperReport>

    结果将是(通过 iReport 预览功能):

    Generated report in iReport

    详情:
  • 在这个示例中,我使用了 Commons Lang 库 v. 3.1 .您应该将此库添加到应用程序的类路径(在我的例子中是 iReport 的 cp)。

  • iReport classpath
  • 我使用了参数 重复次数 (java.lang.Integer) 用于设置要生成的短语数量。
  • 关于jasper-reports - 如何在iReport的背景带中创建水印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14083270/

    58 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com