仿照Microsoft Word,PageStyle的基本属性:
float width; // 总宽度
float height; // 总高度
float leftMargin; // 左边距
float rightMargin; // 右边距float topMargin; // 上边距
float bottomMargin; // 下边距float bindingMargin; // 装订线宽度
int bindingPosition; // 装订位置
设计页面样式如下:
Page的有效显示区域为scaleWidth和scaleHeight:
public float scaleWidth() {
??? return width - leftMargin - rightMargin -
??????? ( bindingPosition==BINDING_LEFT ? bindingMargin : 0.0f );
}
public float scaleHeight() {
??? return height - topMargin - bottomMargin -
??????? ( bindingPosition==BINDING_TOP ? bindingMargin : 0.0f );
}
类似的,段落样式如下:
int alignment; // 对齐方式
float firstIndent; // 首行缩进
float leftIndent; // 左缩进
float rightIndent; // 右缩进
float rowSpace; // 行距
如图:
行高是由所在行的最高的一个Glyph决定的,如上图第三行的高度就是图片的高度。
行距是预设的常数。
Paragraph的总宽度由页面属性scaleWidth决定,总高度无限制,也不必计算。分页是按照行高而不是Paragraph的高度计算的。
Paragraph的有效宽度scaleWidth的计算:
public float scaleWidth(boolean firstRow) {
??? return this.pstyle.scaleWidth(firstRow);
}