[英]how set custom color using itext 7
我使用此代碼自定義文本顏色:
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.