【问题标题】:how set custom color using itext 7如何使用 itext 7 设置自定义颜色
【发布时间】:2017-01-26 18:47:04
【问题描述】:

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

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

【问题讨论】:

    标签: java colors itext itext7


    【解决方案1】:

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

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

    【讨论】:

    • 很好,比我想象的要好。 (new DeviceRgb 有另外一个带float参数的构造函数,那个是使用0-1区间的,但是使用int参数的构造函数对开发者更友好)
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

              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!

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

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

      【讨论】:

      【解决方案4】:
      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);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-04-12
        • 2020-12-14
        • 2020-04-21
        • 2013-08-19
        • 1970-01-01
        • 1970-01-01
        • 2017-08-19
        相关资源
        最近更新 更多