java - 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();
我尝试使用此代码获取矩形中的文本,但没有看到矩形中的文本。
解决方案
你先画文字
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();
推荐阅读
- java - 通知未出现 Android
- javascript - 视频静音和取消静音按钮
- javascript - javascript 数字始终为 2 位小数,采用 typeof 数字格式
- c# - 为 Firefox (Geckodriver) 设置自定义配置文件目录
- android - 什么时候需要 kotlin 反射库?
- c - 当我尝试输入没有任何选项的故意信时,它会输出 3 个错误,但可能会出现一个错误
- c++ - 如何分配适合容纳 T 类型对象的缓冲区(可能过度对齐,可能有 operator new 等)
- typescript - 无法使用 Quill 2.0-dev3 创建自定义 BlockEmbed
- python - 计算滚动相关性给出的值远大于 1
- c# - UserManager.IsInRoleAsync 和 UserManager.GetRolesAsync 彼此不一致