2

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

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

1 回答 1

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)

不同深浅的蓝色

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

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

于 2015-04-16T12:57:17.600 回答