9

对于一个非常简单的问题,我找不到解决方案,如何为文本/行/等设置自定义颜色。在java代码中使用iText7?

我找到了 iText5 的回复,但在版本 7中没有 BaseColor类...

4

4 回答 4

18

我使用此代码来自定义文本颜色:

com.itextpdf.kernel.color.Color myColor = new DeviceRgb(255, 100, 20);
Paragraph colorPara = new Paragraph("text with color").setFontColor(myColor);
于 2016-09-21T05:55:30.793 回答
3

一种选择是使用ColorConstants. 它位于内核依赖项中。

PdfCanvas canvas = new PdfCanvas(pdfPage);
canvas.setColor(ColorConstants.DARK_GRAY, true);
于 2020-07-10T14:10:56.533 回答
2

经过一些尝试失败循环后,我找到了以下解决方案:

        float[] col = new float[]{0,0.5f,0};
        Color szin = Color.makeColor(Color.GREEN.getColorSpace(), col);
        Canvas canvas = new Canvas(pdfCanvas, pdfDoc, page.getPageSize());
        canvas.setProperty(Property.FONT_COLOR, szin);

起初,我不知道如何获取/设置该颜色空间,makeColor 方法的第一个参数需要什么。注销后如下

LOGGER.info(Color.GREEN.getColorSpace().getPdfObject());

我看到了,这是一个 RGB 相关信息,所以也许我应该用 3 个元素(不是 4 个,比如 cmyk)指定第二个 float[]。

信息:2464035 [http-listener-1(3)] 信息 fornax.hu.pdf.generate.PdfCreator2 - /DeviceRGB

另一个大问题是,我应该如何设置浮点值。逻辑提示是深绿色是 62,172,62,但我什么也没看到。我不得不意识到,0 代表 0,但任何大于 1 的数字在结果颜色中都代表 255,因此尝试将值设置在 0 和 1 之间,我得到了 JACKPOT!

用 {1,0.5f,0} 测试颜色 1用{0,0.5f,0} 测试颜色 2

特别感谢 iText7 文档作者,他们无法为像我这样的新手插入任何非常基本的东西的示例。

于 2016-09-19T08:33:14.750 回答
0
Cell hcell = new Cell();   
Paragraph paragraph = new Paragraph("Your Text").setTextAlignment(TextAlignment.CENTER).setFontSize(8);
hcell.add(paragraph);
Color color = WebColors.getRGBColor("red"); // Color name to RGB
hcell.setBackgroundColor(color);
于 2020-10-09T09:23:16.957 回答