2017-07-21 15 views
0

scaleImage="RetainShape"は、大きな画像では正しく機能しますが、小さい画像では、レポート要素の幅または高さのいずれかに応じて画像が拡大(伸び、画質の低下)します。scaleImageプロパティを動的式で設定することはできますか?

<image scaleImage="RetainShape" hAlign="Center" vAlign="Middle"> 
    <reportElement x="10" y="10" width="534" height="300" 
    <imageExpression><![CDATA[$P{originalImage}]]></imageExpression> 
</image> 

動的にscaleImageプロパティを設定できますか? ...同様のシナリオのための答えを探している人のために、他のscaleImage="RetainShape"scaleImage="Clip"

+0

それを適用しませんでしたあなたは条件付きスタイルでプロパティを設定しようとしますか? 'net.sf.jasperreports.style.scaleImage'は[net.sf.jasperreports.style。{style_property_suffix}]にあります(http://jasperreports.sourceforge.net/config.reference.html#net.sf.jasperreports 。style。{style_property_suffix})リスト –

+0

それを試してみましょう。返信ありがとう@アレックス –

答えて

0

(画像が大きい)場合にアレックスが提案ように、私は条件付きスタイルを作成し、画像タグに

<style name="scaleImageStyle" hImageAlign="Center" vImageAlign="Middle"> 
    <conditionalStyle> 
     <conditionExpression><![CDATA[$P{originalImage}.getHeight(null) <=300]]></conditionExpression> 
     <style scaleImage="Clip"/> 
    </conditionalStyle> 
    <conditionalStyle> 
     <conditionExpression><![CDATA[$P{originalImage}.getHeight(null) >300]]></conditionExpression> 
     <style scaleImage="RetainShape"/> 
    </conditionalStyle> 
</style> 

<image hAlign="Center" vAlign="Middle"> 
      <reportElement style="scaleImageStyle" isPrintRepeatedValues="false" x="0" y="0" width="535" height="300" uuid="d813ec39-6f47-4361-9d82-c312924c2ba0"/> 
      <imageExpression><![CDATA[$P{originalImage}]]></imageExpression> 
     </image> 
関連する問題