我正在创建包含图片和文字的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();
答案 0 :(得分:0)
事实证明它确实保存了PDF中的实际颜色。我通过使用PDF检查器发现了这一点,并确实看到了使用的正确值。
答案 1 :(得分:0)
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]);
}