无法更改字体颜色

时间:2015-04-15 20:38:53

标签: pdfclown

我发现无论是蓝色,深蓝色还是浅蓝色,字体颜色都不能很好地工作。它们仍然是完全相同的颜色。

var FontArialRegularFilePath = @"C:\Windows\Fonts\Arial.ttf";
var fontArialRegular = pdfclownFonts::Font.Get(parmDocument, FontArialRegularFilePath);
var file = new File();

var primitiveComposer = new PrimitiveComposer(new Page(file.Document));
{
    var blockComposer = new BlockComposer(primitiveComposer);

    primitiveComposer.SetFont(fontArialRegular, 22 /*[Font-Size]*/);
    primitiveComposer.SetFillColor(new DeviceRGBColor(double.Parse("0"), double.Parse("0"), double.Parse("49")));  //Dark Navy Blue...

    blockComposer.Begin(new RectangleF(0f, 0f, 200f, 50f), XAlignmentEnum.Left, YAlignmentEnum.Top);
    blockComposer.ShowText("Listing Price");
    blockComposer.End();
}

1 个答案:

答案 0 :(得分:3)

OP设置颜色如下:

primitiveComposer.SetFillColor(new DeviceRGBColor(double.Parse("0"), double.Parse("0"), double.Parse("49")));  //Dark Navy Blue...

所以他似乎假设颜色成分的范围是0..255。但情况并非如此,使用类型double的原因是:实际范围是0..1。

因此,OP最有可能想要

primitiveComposer.SetFillColor(new DeviceRGBColor(0.0, 0.0, 49.0/255.0));  //Dark Navy Blue...

由于OP认为结果颜色为黑色,因此使用new DeviceRGBColor(0.0, 0.0, Blue)创建了不同色调的纯蓝色:

different shades of blue

最初建议的值49.0/255.0接近0.2,即非常深蓝色。

我认为OP知道对于某些蓝色的颜色,红色和绿色值不是0.