如何在pdfBOX中创建透明文本或在pdfBOX的帮助下为文本添加不透明度?

时间:2016-10-12 12:16:14

标签: pdf text transparent pdfbox

我没有得到如何在pdfBOX的帮助下添加透明文本。

1 个答案:

答案 0 :(得分:1)

这是显示alpha为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();