Jasper reports jasper报告上的列表缩进

Jasper reports jasper报告上的列表缩进,jasper-reports,indentation,export-to-pdf,Jasper Reports,Indentation,Export To Pdf,我通过JSON接收长文本段落来填充我的报告。这些文本为html格式,我的文本字段如下所示: <textField textAdjust="StretchHeight"> <reportElement x="60" y="1" width="490" height="9" forecolor="#1F497D" uuid="6448707a-6f36-4bef-96a1-6bc7634e72c3"> &

我通过JSON接收长文本段落来填充我的报告。这些文本为html格式,我的文本字段如下所示:

<textField textAdjust="StretchHeight">
                <reportElement x="60" y="1" width="490" height="9" forecolor="#1F497D" uuid="6448707a-6f36-4bef-96a1-6bc7634e72c3">
                    <property name="com.jaspersoft.studio.spreadsheet.connectionID" value="34deaa54-ac6e-42dd-8c82-c125d6810c22"/>
                </reportElement>
                <textElement textAlignment="Justified" markup="html">
                    <font fontName="Arial" size="7"/>
                </textElement>
                <textFieldExpression><![CDATA[$F{text}]]></textFieldExpression>
            </textField>
let tab = "";
for(let i = 0; i < 4; i++) tab += "&nbsp;"
myString.split("\n").map(x=>tab + x).join("<br>");

问题在于列表和缩进。我找到了一些解决方案,比如在第一行缩进中使用负值,但我的问题是我不知道在哪里会有html标记列表

这是获取列表时的输出,如下所示:

1.-Lorem Ipsum只是印刷和排版行业的虚拟文本。自16世纪以来,Lorem Ipsum一直是行业标准的虚拟文本,当时一位不知名的印刷商拿起一个打印工具,将其拼凑成一本打印样本书

我需要这样缩进:

  • Lorem Ipsum只是印刷和排版的虚拟文本 工业。Lorem Ipsum已成为行业标准的虚拟文本 从16世纪开始,一个不知名的印刷工在厨房里打字 然后把它拼凑成一本样本书
  • 我怎样才能使它向右对齐?有黑客吗?
    谢谢

    如果您使用HTML生成此文本,似乎应该能够使用CSS

    如果是这样,那么CSS属性可能是一个很好的快速破解工具。如果能够向要缩进的字段添加类名,只需执行以下操作:

    .myClass {
        text-indent: 85px;
    }
    
    甚至,只需使用左边距:

    .myClass {
        margin-left: 85px;
    }
    
    如果您不能使用CSS,那么作为最后的手段(尽管不推荐),您可以在
    标记中围绕您想要缩进的文本。如果这似乎不正确,那么您可以在文本的每一行之前插入4个空格字符,
    。因此,如果您有一个传入字符串,您可以使用如下JavaScript:

    <textField textAdjust="StretchHeight">
                    <reportElement x="60" y="1" width="490" height="9" forecolor="#1F497D" uuid="6448707a-6f36-4bef-96a1-6bc7634e72c3">
                        <property name="com.jaspersoft.studio.spreadsheet.connectionID" value="34deaa54-ac6e-42dd-8c82-c125d6810c22"/>
                    </reportElement>
                    <textElement textAlignment="Justified" markup="html">
                        <font fontName="Arial" size="7"/>
                    </textElement>
                    <textFieldExpression><![CDATA[$F{text}]]></textFieldExpression>
                </textField>
    
    let tab = "";
    for(let i = 0; i < 4; i++) tab += "&nbsp;"
    myString.split("\n").map(x=>tab + x).join("<br>");
    
    let tab=”“;
    对于(设i=0;i<4;i++)选项卡+=“”
    myString.split(“\n”).map(x=>tab+x).join(“
    ”);

    如果出于任何原因您不能使用JavaScript,那么如果您能够控制文本的来源,您可以用您使用的任何语言重写上述代码。

    如果您使用HTML生成此文本,似乎您应该能够使用CSS

    如果是这样,那么CSS属性可能是一个很好的快速破解工具。如果能够向要缩进的字段添加类名,只需执行以下操作:

    .myClass {
        text-indent: 85px;
    }
    
    甚至,只需使用左边距:

    .myClass {
        margin-left: 85px;
    }
    
    如果您不能使用CSS,那么作为最后的手段(尽管不推荐),您可以在
    标记中围绕您想要缩进的文本。如果这似乎不正确,那么您可以在文本的每一行之前插入4个空格字符,
    。因此,如果您有一个传入字符串,您可以使用如下JavaScript:

    <textField textAdjust="StretchHeight">
                    <reportElement x="60" y="1" width="490" height="9" forecolor="#1F497D" uuid="6448707a-6f36-4bef-96a1-6bc7634e72c3">
                        <property name="com.jaspersoft.studio.spreadsheet.connectionID" value="34deaa54-ac6e-42dd-8c82-c125d6810c22"/>
                    </reportElement>
                    <textElement textAlignment="Justified" markup="html">
                        <font fontName="Arial" size="7"/>
                    </textElement>
                    <textFieldExpression><![CDATA[$F{text}]]></textFieldExpression>
                </textField>
    
    let tab = "";
    for(let i = 0; i < 4; i++) tab += "&nbsp;"
    myString.split("\n").map(x=>tab + x).join("<br>");
    
    let tab=”“;
    对于(设i=0;i<4;i++)选项卡+=“”
    myString.split(“\n”).map(x=>tab+x).join(“
    ”);

    如果您出于任何原因无法使用JavaScript,那么如果您能够控制文本的来源,您可以使用任何语言重写上述代码。

    谢谢!但不幸的是,没有办法使用css类或内联样式来修改元素布局。它只允许与诸如粗体、斜体、颜色等CSS样式一起使用,但与布局无关。关于jasvascript,它是一样的,据我所知,没有办法使用它。现在我正在使用核心库,试图修改它以检测列表并添加正确的缩进。谢谢@管道可以,但“管道”从何而来?您有办法在服务器端修改$[F{text}]吗?如果是这样,您可以将每行拆分\n并在每行的开头添加4个空格谢谢!但不幸的是,没有办法使用css类或内联样式来修改元素布局。它只允许与诸如粗体、斜体、颜色等CSS样式一起使用,但与布局无关。关于jasvascript,它是一样的,据我所知,没有办法使用它。现在我正在使用核心库,试图修改它以检测列表并添加正确的缩进。谢谢@管道可以,但“管道”从何而来?您有办法在服务器端修改$[F{text}]吗?如果是这样,您可以将每行拆分\n并在每行的开头添加4个空格