2017-11-10 1 views
3

내 텍스트 필드에 들여 쓰기를 추가하고 싶습니다. 나는 이미 글 머리 스타일 (텍스트에 <li> 태그 추가)을 추가했지만 JasperSoft Studio가 텍스트를 자동으로 들여 쓰지 않는 것으로 보입니다. 심지어 "스타일" 마크 업 을 설정하고이 같은 단락의 상단에 <ul> 태그를 추가하면글 머리 기호 목록에 들여 쓰기를 추가하는 방법은 무엇입니까?

:

"<ul><li> Example text 1... </li><li> Example text 2... </li></ul>" 

재스퍼 여전히 <ul> 태그를 관리 할 수 ​​없습니다 (문서보고 , 불행히도, 다른 HTML 태그 ..) 그래서 결과는 내가 원한 것이 아닙니다.

는이 시점에서 나는 다른 포럼에서 검색을 시도하고 내가 수동 보고서 스타일을 만들고 (이 가이드 다음 Indentation in generated PDF using JasperReports) 내 텍스트 필드에 그것을 적용 할 수 있음을 발견하지만 niether이 나를 위해 일했다. 설정, 그래서

Border configuration First line indentation

을 :

나는 또한 스타일을 작성하는 재스퍼 편안 할 수 없다고 생각하고, 수동 구성을 넣어 시도하고, 같은 텍스트 필드에 구성을 설정 왼쪽 패딩 속성이 10 px 값이면 모든 텍스트의 오른쪽이 약간 어긋납니다. 첫 줄 들여 쓰기 속성을 -10 px 단락의 첫 번째 줄은 페이지 여백에 따라 0 px 위치에 자동으로 설정해야합니다. 이 내 모든 들여 쓰기를해야한다, 그리고 재스퍼는이 때문에이 문제를 이해하는 것 같다 : 페이지 나는 완전히 다른 얻을 결과를 인쇄

JasperSoft text indentation

.

Here

사람은 잊지 않는 무엇을 알고 있나요?

답변

2

이것은 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를 사용하여

출력

result

아마 그러나 그것은 나를 있었다면 나는 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> 

출력은 상기와 동일하지만, 우리가 특정 수출에 문제를 야기 할 수있는 음의 값으로 해킹되지 않습니다.

+0

답변 해 주셔서 감사합니다. 귀하의 제안을 시도해보고 문제가 해결되면 알려주고 최적의 해결책을 알려 드리겠습니다. 당신이 나에게 준 가이드에 대해서도 감사합니다. 그들은 분명히 흥미로울 것입니다. – Roberto

+0

@Roberto 귀하를 환영합니다. 나를 최신 상태로 유지하십시오!, divertiti! –

+0

안녕하세요 @ PetterFriberg Friberg, 방금 첫 제안 (유니 코드 기호 \ u2022 및 leftPadding = "10"및 firstLineIndent = "- 10")을 시도했지만 결과는 여전히 나에게 부정적입니다. 이것은 내가 시도한 것입니다 : 1. 귀하의 사양으로 텍스트를 포맷했지만, 작동하지 않았습니다 (https://imgur.com/a/zIAAO). 2. 예를 들어 넣은 XML 코드를 복사하여 텍스트 표현을 텍스트로 변경했지만이 방법이 효과적이었습니다. 3. 예제와 같은 값을 입력하여 텍스트 서식 문제인지 확인했지만 여전히 작동하지 않습니다. 나는 아직도 내가 뭔가를 잊어 버렸으면 좋겠다. – Roberto

관련 문제