2016-10-12 45 views
0

私はpdfBOXの助けを借りて透明なテキストを追加する方法を得ていません。pdfBOXで透明テキストを作成する方法、またはpdfBOXを使用してテキストに不透明度を追加する方法はありますか?

+0

https://stackoverflow.com/questions/4540593/draw-transparent-lines-with-pdfboxの部分的な重複(2.0用の一部のadjustementを必要とし、非受け入れ答えを参照) –

+0

PDExtendedGraphicsState graphicsState =新しいPDExtendedGraphicsState( ); graphicsState.setStrokingAlphaConstant(0.5f); COSName graphicsStateName = page.getResources()。add(graphicsState); {(PDPageContentStream cs = new PDPageContentStream(document、page、true、true、true)){ cs.appendRawCommands( "/" + graphicsStateName.getName()+ "gs \ n"); //ここに線を描画します。 } – sandy

+0

私は1.8でエラーを受け取っています。メソッドadd(PDExtendedGraphicsState)はタイプPDResourcesのために定義されていません – sandy

答えて

1

ここでは、1.8のアルファを示しています(2 *を使用する必要があります)。

PDExtendedGraphicsState gs1 = new PDExtendedGraphicsState(); 
    gs1.setNonStrokingAlphaConstant(1f); 
    PDExtendedGraphicsState gs2 = new PDExtendedGraphicsState(); 
    gs2.setNonStrokingAlphaConstant(0.2f); 
    Map<String, PDExtendedGraphicsState> graphicsStatesMap = page.getResources().getGraphicsStates(); 
    if (graphicsStatesMap == null) 
    { 
     graphicsStatesMap = new HashMap<String, PDExtendedGraphicsState>(); 
    } 
    graphicsStatesMap.put("gs1", gs1); 
    graphicsStatesMap.put("gs2", gs2); 
    page.getResources().setGraphicsStates(graphicsStatesMap); 
    cs.setFont(PDType1Font.HELVETICA_BOLD, 60); 
    cs.setNonStrokingColor(255, 0, 0); 
    cs.appendRawCommands("/gs1 gs\n"); 
    cs.beginText(); 
    cs.moveTextPositionByAmount(50, 600); 
    cs.drawString("Apache PDFBox 1"); 
    cs.endText(); 
    cs.setNonStrokingColor(0, 0, 255); 
    cs.appendRawCommands("/gs2 gs\n"); 
    cs.beginText(); 
    cs.moveTextPositionByAmount(70, 620); 
    cs.drawString("Apache PDFBox 2"); 
    cs.endText(); 
    cs.close(); 
+0

* "しかし、実際の透過性はありません" * - 正確に何を意味していますか? – mkl

+0

@mkl私は2番目のテキストが何とか最初のものと "マージ"することを期待しましたが、それは起こりませんでした。 2番目のテキストは明らかに最初のテキストを超えています。私は別の色で2番目のファイルを作成しました:http://www.filedropper.com/transparent_1 –

+0

透明オーバーレイは依然としてオーバーレイです。あなたがどちらかの好みのない背景と前景を組み合わせたい場合は、実際に**「ダークマン**」や「**マルチプレイ**」のような*「レンダリングモード」*を探しています。 – mkl

関連する問題