java - 如何在 Apache PDFBox 中呈现彩色文本

标签 java pdf text pdfbox

是的,这似乎是个奇怪的问题,但我无法在 PDFBox 中呈现彩色文本。

通常生成文本的代码如下所示:

//create some document and page...
PDDocument document = new PDDocument();
PDPage page = new PDPage(PDRectangle.A4);

//defined some font
PDFont helveticaRegular = PDType1Font.HELVETICA;

//content stream for writing the text
PDPageContentStream contentStream = new PDPageContentStream(document, page);

contentStream.beginText();
contentStream.setFont(helveticaRegular, 16);
contentStream.setStrokingColor(1f,0.5f,0.2f);
contentStream.newLineAtOffset(64, page.getMediaBox().getUpperRightY() - 64);
contentStream.showText("The hopefully colored text");
contentStream.endText();

//closing the stream
contentStream.close();

[...] //code for saving and closing the document. Nothing special

有趣的是,setStrokingColor 是唯一接受流中颜色的方法。 所以我认为这是在 PDFBox 中给某些东西上色的方法。

但是:我没有为文本添加任何颜色。所以我想这是一种用于其他类型内容的方法。

有人知道如何在 PDFBox 中实现彩色文本吗?

最佳答案

你用

contentStream.setStrokingColor(1f,0.5f,0.2f);

但在 PDF 中,默认情况下文本不是通过描边路径绘制的,而是通过填充路径绘制的。因此,你应该尝试

contentStream.setNonStrokingColor(1f,0.5f,0.2f);

相反。

关于java - 如何在 Apache PDFBox 中呈现彩色文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66157259/

相关文章:

Java:如何缩进 Transformer 生成的 XML

java - Spring Boot Controller 应如何处理 'missing' 请求 header ?

html - CSS:文本位于所选颜色的基线上

c++ - 初学者 C++ - 打开一个文本文件进行阅读,如果它存在,如果不存在,则将其创建为空

java - 在java中使用动态变量解析文本

java - 设置特殊正则表达式的长度

java - 正则表达式 : capture group NOT followed by

windows - 在 Windows 上使用 Chromium 查看 PDF

linux - 共享 Linux 服务器上的 SVG 到 PDF

R markdown 格式标题 - pdf 输出