使用 PDFBox 绘制透明线

Luc*_*ers 2 java pdfbox

我想在 PDFBox 中用透明线绘制线条和多边形。这是我如何绘制蓝线的一些示例代码,但我无法弄清楚如何更改颜色的 alpha 值。

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);  
Run Code Online (Sandbox Code Playgroud)

She*_*ock 5

自 PDFBox 2.0 起appendRawCommands已弃用。

    float alpha = 0.5f;
    PDExtendedGraphicsState graphicsState = new PDExtendedGraphicsState();
    graphicsState.setStrokingAlphaConstant(alpha);
    stream.setGraphicsStateParameters(graphicsState);
    // draw line here
Run Code Online (Sandbox Code Playgroud)


Fav*_*ius -1

您不能使用 alpha 值,因为java.awt.ColorPDFBox 仅使用 RGB 值。根据 javadocpublic void setStrokingColor(Color color)它只是:

设置描边颜色,指定为 RGB。

一种选择是将背景颜色设置为描边颜色,以使线条不可见。 注意 -不可见!=透明(所以你不会得到透视效果)

  • 正如这个问题的其他答案所表明的那样,即使使用 PDFBox,PDF 中也可以实现透明。 (2认同)