无法更改字体颜色
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。
我发现字体颜色不太好用,无论是蓝色、深蓝色还是浅蓝色。它们仍然是相同的颜色。
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。