Jasper reports jasper报告上的列表缩进
我通过JSON接收长文本段落来填充我的报告。这些文本为html格式,我的文本字段如下所示: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"> &
<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 += " "
myString.split("\n").map(x=>tab + x).join("<br>");
问题在于列表和缩进。我找到了一些解决方案,比如在第一行缩进中使用负值,但我的问题是我不知道在哪里会有html标记列表
这是获取列表时的输出,如下所示:
1.-Lorem Ipsum只是印刷和排版行业的虚拟文本。自16世纪以来,Lorem Ipsum一直是行业标准的虚拟文本,当时一位不知名的印刷商拿起一个打印工具,将其拼凑成一本打印样本书
我需要这样缩进:
谢谢 如果您使用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 += " "
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 += " "
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个空格