在PDFBox中设置文本颜色



我正在尝试使用PDFBox向PDF页面添加文本行。我正在使用以下代码

PDPageContentStream cs = new PDPageContentStream(document, page, PDPageContentStream.AppendMode.APPEND, false);
cs.beginText();
cs.setFont(font, fontSize);
cs.newLineAtOffset(posX, posY);
cs.showText(text);
cs.endText();
cs.close();

这在大多数文档上都很好,但我遇到了一个特定文档的问题,该文档的文本显示为白色(不确定为什么要以这种方式呈现文本(,并且由于页面背景本身是白色而不可见,所以我理想情况下想做的是为该文本设置一个固定的黑色。如何做到这一点?

正如Tilman Hausherr和其他人在评论中指出的那样,问题在于以附加模式打开流,而不将resetContext参数设置为true可能会导致文本呈现的许多问题,因此使用

PDPageContentStream(document, page, PDPageContentStream.AppendMode.APPEND, false, true)

而不是

PDPageContentStream(document, page, PDPageContentStream.AppendMode.APPEND, false)

解决了文本未正确呈现的问题。此外,如果你想为文本设置自定义颜色,你需要调用

cs.setNonStrokingColor(r, g, b);

最新更新