Java中使用PDFBox如何将文本置于矩形内?代码遇文本不显示问题
问题原因及解决方案
哦,这个问题我太熟悉了——你把绘制顺序搞反啦!
你当前的代码是先绘制文本,再填充矩形。而PDF的内容是按绘制顺序堆叠的,后面绘制的元素会覆盖前面的。你的浅灰色矩形(235,235,235)刚好覆盖在之前写的文本上面,所以文字就被挡住看不到了。
修改后的代码
只需要调整一下绘制顺序,先画并填充矩形,再写文本就可以解决:
// 先绘制并填充矩形 contentStream.setNonStrokingColor(235,235,235); contentStream.addRect(50, 200, 500, 100); contentStream.fill(); // 再绘制文本 contentStream.beginText(); contentStream.setFont(PDType1Font.TIMES_ROMAN, 10); contentStream.newLineAtOffset(260, 240); contentStream.showText("Connect with Us:"); contentStream.endText();
额外小提示
如果之后你需要给矩形加上边框,可以在fill()之后调用contentStream.stroke();(记得先设置描边颜色哦),这样矩形既有填充色又有边框,文本也能正常显示在上面。
内容的提问来源于stack exchange,提问作者user9349457
相关产品推荐
相关产品推荐

