我正在使用itext pdf编辑现有的pdf。执行此操作时,只有一部分矩形框显示为彩色,而某些部分未突出显示。 看起来这里发生了一些重叠问题。
黄色未显示在完整的矩形中。
PdfContentByte canvas = stamper.getUnderContent(1);
canvas.saveState();
canvas.setColorFill(BaseColor.YELLOW);
canvas.rectangle(36, 786, 66, 16);
canvas.fill();
canvas.restoreState();
stamper.close();
答案 0 :(得分:2)
要使您的任务正常工作,您不应在现有内容下绘制(因为内容可以简单地覆盖您的标记),而是 over 它。要使原始内容闪耀,您应该使用适当的混合模式:
PdfContentByte canvas = stamper.getOverContent(1);
canvas.saveState();
PdfGState state = new PdfGState();
state.setBlendMode(new PdfName("Multiply"));
canvas.setGState(state);
canvas.setColorFill(BaseColor.YELLOW);
canvas.rectangle(36, 786, 66, 16);
canvas.fill();
canvas.restoreState();
stamper.close();
(MarkContent测试)
你没有分享你的PDF,所以我不得不试试我在这里的PDF。使用适当更改的矩形位置和大小代码标记此
看起来像这样: