首页 > 解决方案 > java - 如何在java中的pdfbox中将文本放在矩形中?

问题描述

内容流通过我想在矩形中显示“连接我们”文本。

contentStream.beginText();
contentStream.setFont(PDType1Font.TIMES_ROMAN, 10);
contentStream.newLineAtOffset(260, 240);            
contentStream.showText("Connect with Us:");
contentStream.endText();
contentStream.setNonStrokingColor(235,235,235);
contentStream.addRect(50, 200, 500, 100);
contentStream.fill();

我尝试使用此代码获取矩形中的文本,但没有看到矩形中的文本。

标签: javapdfbox

解决方案


你先画文字

contentStream.beginText();
contentStream.setFont(PDType1Font.TIMES_ROMAN, 10);
contentStream.newLineAtOffset(260, 240);            
contentStream.showText("Connect with Us:");
contentStream.endText();

然后填充矩形...

contentStream.setNonStrokingColor(235,235,235);
contentStream.addRect(50, 200, 500, 100);
contentStream.fill();

那么,会发生什么?你的矩形覆盖了文字!

要解决这个问题,只需反过来做,先绘制矩形,重置非描边颜色,然后在上面写字。

contentStream.setNonStrokingColor(235,235,235);
contentStream.addRect(50, 200, 500, 100);
contentStream.fill();
contentStream.setNonStrokingColor(0,0,0);
contentStream.beginText();
contentStream.setFont(PDType1Font.TIMES_ROMAN, 10);
contentStream.newLineAtOffset(260, 240);            
contentStream.showText("Connect with Us:");
contentStream.endText();

推荐阅读