无法更改字体颜色

Can't change the font color

我发现字体颜色不太好用,无论是蓝色、深蓝色还是浅蓝色。它们仍然是相同的颜色。

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

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

创建了不同深浅的纯蓝色

最初提出的值49.0/255.0接近0.2,即很深的蓝色。

我假设 OP 知道对于某些偏蓝的颜色,红色和绿色值不为 0。