我没有得到如何在pdfBOX的帮助下添加透明文本。
答案 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();