이것은 jasper-reports가 제대로 지원하지 않는 것으로 정의한 속성 태그 html을 사용하지 않고 글 머리 목록을 작성하는 빠른 방법입니다.
는
Indentation in generated PDF using JasperReports
예 jrxml에 설명 된대로
"\u2022 Some text on line 1 that gets longer to wrap\n\u2022 This is text on line 2"
는 그런 다음 leftPadding="10"
및 firstLineIndent="-10"
을 설정할 수 있습니다 (\n
는 줄 바꿈입니다) 다음과 같은 예를 들어, 텍스트, 총알을 표현하기 위해 유니 코드 기호 \u2022
를 사용하여
출력
아마 그러나 그것은 나를 있었다면 나는 JRDataSource
에 텍스트를 변환하고 jr:list
구성 요소를 사용하는 것입니다. 대신 삽입하는 텍스트를 조작 할 수있는 방법을 궁금해하는이 How to convert a , separated String to a table layout? 를 참조 문자열에서 데이터 소스를 만드는 방법에와있는 경우 예를 들어 유니 코드는 firstLineIndent="-10"
해킹을 방지하는 날 선호 How can I replace a character with an unicode image?
편집 추가 솔루션을 참조
용액으로, 예
new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource(java.util.Arrays.asList($P{testText}.split("\n")))
에서위한 JRDataSource 문자열로 변환하고 jr:list
를 사용하는 <field name="_THIS" class="java.lang.String"/>
전체 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="Indentation" pageWidth="595" pageHeight="842" whenNoDataType="AllSectionsNoDetail" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="f0ac92f3-35e5-417e-aecd-5c47be379bf8">
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="One Empty Record"/>
<subDataset name="ListDataset" uuid="a6053d26-ad58-4808-ac51-76e62529d7de">
<queryString>
<![CDATA[]]>
</queryString>
<field name="_THIS" class="java.lang.String"/>
</subDataset>
<parameter name="testText" class="java.lang.String">
<defaultValueExpression><![CDATA["Some text on line 1 that gets longer to wrap\nThis is text on line 2"]]></defaultValueExpression>
</parameter>
<queryString>
<![CDATA[]]>
</queryString>
<title>
<band height="34" splitType="Stretch">
<componentElement>
<reportElement x="0" y="0" width="170" height="20" uuid="a9d62b3a-cdad-4c44-a3e6-8e7688986380"/>
<jr:list xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd" printOrder="Vertical">
<datasetRun subDataset="ListDataset" uuid="a21cd89b-dd5a-4135-90e0-a84ef83bd9dc">
<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource(java.util.Arrays.asList($P{testText}.split("\n")))]]></dataSourceExpression>
</datasetRun>
<jr:listContents height="20" width="170">
<ellipse>
<reportElement x="13" y="4" width="4" height="4" backcolor="#000000" uuid="c2a202b7-ca0f-4ce4-a2d8-35b314f8e1ee">
<property name="com.jaspersoft.studio.unit.width" value="pixel"/>
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
</reportElement>
</ellipse>
<textField isStretchWithOverflow="true">
<reportElement x="30" y="0" width="80" height="20" uuid="31b05be1-9d89-4928-aec8-095e15e66711"/>
<textElement textAlignment="Left"/>
<textFieldExpression><![CDATA[$F{_THIS}]]></textFieldExpression>
</textField>
</jr:listContents>
</jr:list>
</componentElement>
</band>
</title>
</jasperReport>
출력은 상기와 동일하지만, 우리가 특정 수출에 문제를 야기 할 수있는 음의 값으로 해킹되지 않습니다.
답변 해 주셔서 감사합니다. 귀하의 제안을 시도해보고 문제가 해결되면 알려주고 최적의 해결책을 알려 드리겠습니다. 당신이 나에게 준 가이드에 대해서도 감사합니다. 그들은 분명히 흥미로울 것입니다. – Roberto
@Roberto 귀하를 환영합니다. 나를 최신 상태로 유지하십시오!, divertiti! –
안녕하세요 @ PetterFriberg Friberg, 방금 첫 제안 (유니 코드 기호 \ u2022 및 leftPadding = "10"및 firstLineIndent = "- 10")을 시도했지만 결과는 여전히 나에게 부정적입니다. 이것은 내가 시도한 것입니다 : 1. 귀하의 사양으로 텍스트를 포맷했지만, 작동하지 않았습니다 (https://imgur.com/a/zIAAO). 2. 예를 들어 넣은 XML 코드를 복사하여 텍스트 표현을 텍스트로 변경했지만이 방법이 효과적이었습니다. 3. 예제와 같은 값을 입력하여 텍스트 서식 문제인지 확인했지만 여전히 작동하지 않습니다. 나는 아직도 내가 뭔가를 잊어 버렸으면 좋겠다. – Roberto