BIRT 2.5.0을 사용하여 PDF 파일을 생성하려고합니다. BIRT는 pHp에서 호출됩니다 (JavaBridge 및 Tomcat 서버 덕분입니다).BIRT가 포함 된 PDF에 동적 이미지 포함
그리고 나는 단순히 특정 조건에서 확인 체크 박스를 만들기 위해 노력하고 있습니다. 인터넷에서 약간 보였고 두 가지 방법으로 찾아 냈습니다.
첫 번째 방법은 필드 "idclassebillet는"(있는 내가 테스트를 만드는 중이라서) 1의 값을 가지는 경우 가시성을 재생하는 것입니다 내가 이런 식으로했다 :
<image id="9010">
<list-property name="visibility">
<structure>
<property name="format">all</property>
<expression name="valueExpr" type="javascript">row["classEq1"]</expression>
</structure>
</list-property>
<list-property name="boundDataColumns">
<structure>
<property name="name">classEq1</property>
<text-property name="displayName">classEq1</text-property>
<expression name="expression" type="javascript">dataSetRow["idclassebillet"] == 1</expression>
<property name="dataType">boolean</property>
</structure>
</list-property>
<property name="source">embed</property>
<property name="imageName">checkbox_unchecked.png</property>
</image>
을하지만 아무튼 일하지 마라.
그래서 내가 찾은 두 번째 솔루션은 간단한 URL과 함께 연주했다. 이 솔루션은 훨씬 더 편리하지만 작동하지 않습니다. 이것은 그렇게 보일 것입니다. 두 경우
<image id="9018">
<property name="source">url</property>
<list-property name="boundDataColumns">
<structure>
<property name="name">classEq1</property>
<text-property name="displayName">classEq1</text-property>
<expression name="expression" type="javascript">dataSetRow["idclassebillet"]</expression>
<property name="dataType">integer</property>
</structure>
</list-property>
<expression name="uri" type="javascript">
if(row["classEq1"] == 1)
"http://my.server.com/checkbox_checked.png"+row["classEq1"];
else
"http://my.server.com/checkbox_unchecked.png"+row["classEq1"];
</expression>
</image>
은, 그와 같은 필드 "dataSetRow ["idfield를 "]"선언
<data-sets>
<oda-data-set extensionID="org.eclipse.birt.report.data.oda.jdbc.JdbcSelectDataSet" name="infoBordereau" id="178">
<structure name="cachedMetaData">
<list-property name="resultSet">
...
<structure>
<property name="position">9</property>
<property name="name">idclassebillet</property>
<property name="dataType">integer</property>
</structure>
...
</structure>
<property name="dataSource">GestionBillet</property>
<list-property name="resultSet">
...
<structure>
<property name="position">8</property>
<property name="name">idclassebillet</property>
<property name="nativeName">idclassebillet</property>
<property name="dataType">integer</property>
</structure>
...
</list-property>
....
</oda-data-set>
</data-sets>
가 나는 "idclassebillet"의 콘텐츠에 액세스 할 수 있는지 조사했다. 나는 단순히 이런 식으로 인쇄하는 경우, 그것은 잘 작동 :
<data id="90060001">
<property name="whiteSpace">nowrap</property>
<property name="dataSet">infoBordereau</property>
<list-property name="boundDataColumns">
<structure>
<property name="name">classEq1</property>
<text-property name="displayName">classEq1</text-property>
<expression name="expression" type="javascript">dataSetRow["idclassebillet"]</expression>
<property name="dataType">integer</property>
</structure>
</list-property>
<property name="resultSetColumn">classEq1</property>
</data>
그리고 무엇 내 "역동적 인"이미지를 얻기 위해 선택하는 솔루션을, 난 항상 같은 이미지를 얻을, 어떤 "dataSetRow ["idclassebillet의 값 " ] "입니다. 이미지에 액세스하여 인쇄하는 데 문제가 없습니다. 문제는 "idclassebillet"필드의 값을 "테스트"하는 것입니다 (즉,이 필드에 어떻게 액세스 할 수 있습니까?).
난 당신이 내가 뭘하려고 오전 이해를 바랍니다. 당신이 더 나은 솔루션을 (및 코드의 예 가능한 경우) ^^ 공유 주저하지 않는 경우 :
많은 감사,
라파엘 POITTEVIN
NB : 처음에는 내 이미지를 문서에 임베드하고 싶습니다. (첫 번째 해결 방법에서 사용하는 것입니다.)하지만 작동하지 않았기 때문에 http://my.server.com에있는 이미지를 사용했습니다 ...
안녕하세요, 답변 해 주셔서 감사합니다. 이것은 꽤 좋은 생각입니다. 나는 ... 내 부분에 라인'<속성 이름 = "의 font"> Wingdings를을'추가 내 코드는 같은 비트 같습니다 경우 (dataSetRow [ "idclassebillet"] == 1) 문자열 .fromCharCode ('0xFD'); 다른 대신 String.fromCharCode ('내지 0xFE'); 하지만이 단지를 인쇄 'Y'자 ... 어떤 생각? (NB : [링크] (http://en.wikipedia.org/wiki/Checkbox) 나는 또한 시도 다른 사람은 U + 2610 같은 CHAR,하지만 아무것도 인쇄되지 않았다.) – PiroXXI
@PiroXXI을 : 그 세 문자가'있다 일반 글꼴 (Arial, Times 등)에서는 각각 "¨", "ý"및 "þ"로 표시되지만 Wingdings에서는 빈 확인란, 교차 체크 박스 및 체크 표시가 각각 표시되어야합니다.글꼴이 제대로 표시되지 않는 것처럼 들립니다. 자신의 컴퓨터에서 미리보기를 시도 했습니까? –
그것은 내 자신의 컴퓨터 (윈도우)에서 꽤 잘 작동하지만, 리눅스 서버에서 제대로 작동하도록 할 수는 없습니다. :/(폰트를 설치했지만 BIRT가 찾지 못하는 것과 같다). ' Wingdings "'을 추가하거나 제거하는 것은 글꼴이 다르기 때문에 효과가 있습니다. 그러나 내 창문에있는 글꼴 글꼴처럼 보이지 않습니다 ... –
PiroXXI