iTextsharp 字体颜色在 PDF 中有所不同



我正在创建一个带有图像和文本的PDF。文本可以有不同的颜色。我从HTML颜色代码转换颜色以获得System.Drawing.Color对象,但生成的PDF中的颜色结果不同。在一个特定的实例中,html代码是3C3C3C,它显示为3C403E。我通过使用颜色选择器来检查颜色,以获取 PDF 中的颜色。

var color = System.Drawing.ColorTranslator.FromHtml("#3C3C3C);
iTextSharp.text.Font font = font = FontFactory.GetFont(FontFactory.HELVETICA);
font.Color = new BaseColor(color);
// boxValue is a string
Phrase phrase = new Phrase(boxValue, font);
ColumnText columnText = new ColumnText(canvas);
columnText.SetSimpleColumn(boxRectangle);
columnText.Leading = lineHeight;
columnText.SetLeading(lineHeight, 0);
columnText.SetText(phrase);
columnText.Alignment = alignment;
columnText.Go();

事实证明,它确实将实际颜色保存在PDF中。我通过使用PDF检查器发现了这一点,并且确实看到了使用的正确值。

   public static BaseColor stringToBaseColor(string code)
    {

        Color color = ColorFromString(code);
        BaseColor b = new BaseColor(color);
        return ColorToBaseColor(color);
    }

    public static BaseColor ColorToBaseColor(Color color)
    {
       return new BaseColor(color);
    }
    public static Color ColorFromString(string code)
    {
        string[] colors = code.Split(',');
        List<int> myInts = Array.ConvertAll(colors, s => int.Parse(s)).ToList();
        return  Color.FromArgb(myInts[0], myInts[1], myInts[2]);
    }

最新更新