如何使用itext 7设置自定义颜色

时间:2016-09-19 06:56:41

标签: java colors itext itext7

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

I found this reply for iText5但在版本7 there is no BaseColor类......

4 个答案:

答案 0 :(得分:7)

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

com.itextpdf.kernel.color.Color myColor = new DeviceRgb(255, 100, 20);
Paragraph colorPara = new Paragraph("text with color").setFontColor(myColor);

答案 1 :(得分:2)

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

PdfCanvas canvas = new PdfCanvas(pdfPage);
canvas.setColor(ColorConstants.DARK_GRAY, true);

答案 2 :(得分:1)

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

        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个元素指定第二个float [](不是4个,就像cmyk一样)。

  

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

另一个大问题是,我应该如何设置浮点值。逻辑提示是暗绿色是62,172,62,但我没有看到任何东西。我必须意识到,0表示为0,但是任何大于1的数字在结果颜色中都是255,所以试图设置0到1之间的值,我得到了JACKPOT!

test color 1 {1,0.5f,0} test color 2 {0,0.5f,0}

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

答案 3 :(得分: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);