ChartDirector 5.0 for python 笔记【10】CDML 标记语言

来源:互联网 发布:代理服务器ip和端口 编辑:程序博客网 时间:2024/05/01 16:29

CDML,也就是ChartDirector Mark Up Language,ChartDirector标记语言。有点像html啊。

CDML允许单行文本被多字体,不同颜色,甚至内嵌图片所渲染。

下文分成4部分:

  • Font Styles
  • Blocks and Lines
  • Embedding Images
  • Blocks Attributes

Font Styles (字体样式)

你可以用CDML标签来改变文本的样式,比如说下面这行代码:

<*font=timesi.ttf,size=16,color=FF0000*>Hello <*font=arial.ttf,size=12,color=008000*>world!

它将Hello world!这个文本渲染为:

一般来说,CDML的所有tags都是 用<**>来标识的。

在这对tags里的属性决定了tags后面同一个block里文本的样式。

由于<* 被当做tags标识来使用了。如果你在程序中出现它,要转义,方法为:<<*

下面这张图表显示了最常用的一些属性。


注意:没有单引号或者双引号。因为这个是python要使用的。

注意:使用逗号作为属性之间的分隔符,不能使用空格。

注意:font属性启动一个样式小节。你可以使用<*/font*>来结束这个小节(section),这样该小节里的各种属性只对该小节生效。


Blocks and Lines

在CDML里,一个文本字符串可能包含多个block(块).

一个block能使用换行符'\n'或者<*br*>,使这个block包含多行文本。

比如下面的代码:

<*size=15*><*block*><*color=FF*>BLOCK<*br*>ONE<*/*> and <*block*><*color=FF00*>BLOCK<*br*>TWO<*/*>
它对文本的渲染的效果如下图所示:

分析:以上的代码包括两个block,每个block包含两行文本。每个block用<*block*>标识开始,用<*/*>标识结束。

注意:当一个block被标识结束以后,字体样式会恢复到这个block之前的样子。


Embedding Images

CDML支持在文本中嵌入图片。一般格式为:<*img=my_image_file.png*>

my_image_file.png就是指定了嵌入图片的路径。

例如代码:<*size=20*>A <*img=sun.png*> day 
渲染效果为:

注意:图片的扩展名只支持:jpg、jpeg、gif、png、wbmp、wmp.


Blocks Attributes

CDML支持嵌套的block.也就是说一个block可以包含另一个子block。block有属性用来控制子block的对齐方式和方向。

比如下面的代码:

<*block,valign=absmiddle*><*img=molecule.png*> <*block*>Hydrazino\nMolecule<*/*><*/*>
它的渲染效果如下图:

分析:<*block,valign=absmiddle*>使得各部分内容在垂直方向上按照absmiddle方式对齐。这个block包含一个图片(被当做一个block),一个空白字符,一个带有两行文本的block。

block 标签支持的属性有如下这些:

width、height、maxwidth、truncate、linespacing、bgColor、valign、halign、angle

主要用得多的是valign:表示子block的垂直对齐方式。对齐方式有baseline、top、bottom、middle和absmiddle。比如top:假设A是一个block,B是它的子block。那么top表示B的top line要和A的top line对齐。