首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >贾斯珀报告的列表缩进

贾斯珀报告的列表缩进
EN

Stack Overflow用户
提问于 2020-03-08 10:18:49
回答 1查看 326关注 0票数 1

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

代码语言: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>

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

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

1.- Lorem Ipsum只是印刷和排版行业的虚拟文本。自从1500年代以来,Lorem就一直是业界标准的虚拟文本,当时一台不知名的打印机拿出一台打字机,把它拼成一本样书。

我需要这样的缩进:

  1. Lorem Ipsum只是印刷和排版行业的虚拟文本。自从1500年代以来,Lorem就一直是业界标准的虚拟文本,当时一台不知名的打印机拿出一台打字机,把它拼成一本样书。

我怎么才能把这个和右边对齐?有黑客吗?谢谢!

EN

回答 1

Stack Overflow用户

发布于 2020-04-07 10:13:15

如果您正在使用HTML生成此文本,那么似乎您应该能够使用CSS。

如果是这样的话,那么CSS属性文本缩进可能是一个很好的快速攻击。如果您能够将类名添加到您想要缩进的字段中,那么只需执行以下操作:

代码语言:javascript
复制
.myClass {
    text-indent: 85px;
}

甚至,只需使用边距-左:

代码语言:javascript
复制
.myClass {
    margin-left: 85px;
}

如果您不能使用CSS,那么作为最后的手段(尽管不推荐),您可以在<blockquote>标记中包围您的预定缩进文本。如果这看起来不对,那么您可以在文本的每一行前面插入4个空空格字符&nbsp;。因此,如果您有一个传入字符串,您可以使用如下所示的一些JavaScript:

代码语言:javascript
复制
let tab = "";
for(let i = 0; i < 4; i++) tab += "&nbsp;"
myString.split("\n").map(x=>tab + x).join("<br>");

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60586483

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档