2

PDFBoxに透明な線で線や多角形を描きたいのですが。これは、青い線を描画する方法のサンプルコードですが、色のアルファ値を変更する方法がわかりません。

PDDocument document = new PDDocument();  
PDPage page = new PDPage();  
document.addPage(page);  
PDPageContentStream contentStream = new PDPageContentStream(document, page);  
contentStream.setStrokingColor(66, 177, 230);  
contentStream.drawLine(100, 100, 200, 200);  
4

3 に答える 3

5

PDFBox 2.0以降appendRawCommands、非推奨になりました。

    float alpha = 0.5f;
    PDExtendedGraphicsState graphicsState = new PDExtendedGraphicsState();
    graphicsState.setStrokingAlphaConstant(alpha);
    stream.setGraphicsStateParameters(graphicsState);
    // draw line here
于 2017-05-18T17:53:32.197 に答える
3

これは、カスタムの拡張グラフィックス状態を使用して実現できます。

PDExtendedGraphicsState graphicsState = new PDExtendedGraphicsState();
graphicsState.setStrokingAlphaConstant(0.5f);
COSName graphicsStateName = page.getResources()。add(graphicsState);
try(PDPageContentStream cs = new PDPageContentStream(document、page、true、true、true)){
    cs.appendRawCommands( "/" + graphicsStateName.getName()+ "gs \ n");
    //ここに線を引きます。
}
于 2015-04-20T10:21:36.353 に答える
-1

java.awt.ColorPDFBoxはRGB値のみを使用するため、のアルファ値を使用することはできません。それのjavadocにpublic void setStrokingColor(Color color)よるとちょうど:

RGBとして指定されたストロークカラーを設定します。

1つのオプションは、背景色をストロークの色として設定して、線を非表示にすることです。 注-非表示!=透明(したがって、シースルー効果は得られません)

于 2010-12-31T05:19:20.860 に答える