簡體   English   中英

如何使用 itext 7 設置自定義顏色

[英]how set custom color using itext 7

我找不到一個非常簡單的問題的解決方案,如何為文本/行/等設置自定義顏色。 在java代碼中使用iText7?

我找到了 iText5 的回復,但在版本 7中沒有 BaseColor類...

我使用此代碼自定義文本顏色:

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

一種選擇是使用ColorConstants 它位於內核依賴項中。

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

經過一些嘗試和失敗循環后,我找到了以下解決方案:

        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 之間,我得到了大獎!

使用 {1,0.5f,0}測試顏色 1使用 {0,0.5f,0}測試顏色 2

特別感謝 iText7 文檔編寫者,他們無法為像我這樣的菜鳥插入這個非常基本的東西的任何示例。

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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM