You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:16:50