7

私はiText5.2.1を使用しており、アルファチャネルでBaseColorコンストラクターを使用しようとしました。

public BaseColor(final int red, final int green, final int blue, final int alpha)

しかし、実際にテキストや図形を描くと、アルファチャネルが考慮されていないようです。たとえば、これを試してみると

  Font f = ....;
  f.setColor(new BaseColor(130, 130, 130, 50);
  PdfContentByte cb = writer.getDirectContent();
  ColumnText.showTextAligned(cb, Element.ALIGN_LEFT, new Phrase("my text", f),
      refPointX, refPointY, 0);

指定された色で書かれているが、アルファ情報がない、つまり不透明度が100%の色で書かれているテキスト。ある形状を描画しようとして、透明度のある塗りつぶし色を指定した場合も同じことが起こります。

iTextinActionの第2版では、色の透明性については何もありません。

私が間違っている?

4

1 に答える 1

16

itextメーリングリストで何かを見つけました。試してみました...動作します!これは文書化されていない機能です。とにかく、次のコードは私が必要なことをします:

PdfContentByte cb = writer.getDirectContent();
PdfGState gState = new PdfGState();
gState.setFillOpacity(0.1f);
cb.setGState(gState);

テキストや図形を描画する場合、不透明度は10%です。を使用gState.setStrokeOpacityすると、ストロークに不透明度を設定することもできます。

于 2012-07-04T07:37:53.130 に答える