OFD的模板也是页面,我们使用的页面继承了模板页面。以此我们可以像创建页面一样创建一个模板,该类只要一个参数,就是OFDocument类实例。
// 创建一个OFD文档
OFDocument ofDocument = new OFDocument();
// 创建一个OFD文档的模板
OFDTemplate template = new OFDTemplate(ofDocument);
如1.1所述,模板也拥有页面大部分功能:
CTColor gray=new CTColor();
gray.setValue("135 206 250");
template.addSquare(0,0,100,100,null,gray);
template.addText("模版页内容",50,50);
template.addEllipse(50,50,10,10,3.0);
上述例子中,我们向页面增加了一个(100*100)的矩形,并且把他的填充颜色设置成了天蓝色。紧接着我们向模板文件内增加了文字和一个原。
只有向公共资源注册后获取资源ID的模板页面,才可以被其他页面使用。公共数据资源类的注册方法如下:
public int addTemplate(OFDTemplate template)
template
- 模板对象示例代码如下:
// 创建一个OFD文档
OFDocument ofDocument = new OFDocument();
// 创建模版页
OFDTemplate template = new OFDTemplate(ofDocument);
CTColor gray=new CTColor();
gray.setValue("135 206 250");
template.addSquare(0,0,100,100,null,gray);
template.addText("模版页内容",50,50);
template.addEllipse(50,50,10,10,3.0);
// 注册模版页
int templateid=ofDocument.getOfdCommonData().addTemplate(template);
有了模板资源的ID后,就可以设置页面引用的模板,页面的设置模板方法如下:
public void addTemplatePage(long TemplateID, java.lang.String ZOrder)
TemplateID
注册的模板ID ZOrder
- - 详细见PageType 默认 Background 背景层 Foreground 前景层示例代码如下:
OFDPage page = new OFDPage(ofDocument);
page.addTemplatePage(templateid,"Backqround");
ofDocument.addPage(page);
//增加页面本身的元素
//page.addXXX
OFDPage page2 = new OFDPage(ofDocument);
page2.addTemplatePage(templateid,"Backqround");
ofDocument.addPage(page2);
OFD板式文件会在公共资源区域设置一个页面默认大小,本软件默认大小为A4纸张(210MM* 297MM),可以在创建OFDocument对象时就设置页面默认大小。
OFD有以下四种区域:
名称 | 说明 | 备注 |
---|---|---|
PhysicalBox | 页面物理区域,左上角的坐标为页面空间坐标系的原点 | 必选 |
ApplicationBox | 显示区域,页面内容实际显示或打印输出的区域,位于页面物理区域内,包含页眉、页脚、版心等内容。 例外处理如果显示区域不完全位于页面物理区域内,页面物理区域外的部分则被忽略。如果显示区域完全位于页面物理区外,则该页为空白页 |
可选 |
ContentBox | 版心区域,即文件的正文区域,位于显示区域内。左上角的坐标决定了其在显示区域内的位置。 例外处理如果版心区域不完全位于显示区域内,显示区域外的部分则被忽略。如果版心区域完全位于显示区域外,则版心内容不被绘制 |
可选 |
BleedBox | 出血区域,即超出设备物理限制的额外出血区域,位于页面物理区域外。不出现时,默认值为页面物理区域。 例外处理如果出血区域不完全位于页面物理区域外,页面物理区域内的部分则被忽略。如果出血区域完全位于页面物理区域内,出血区域无效 |
可选 |
我们可以公共公共资源类来设置上述区域大小,示例代码如下:
// 创建一个OFD文档
OFDocument ofDocument = new OFDocument();
ofDocument.getOfdCommonData().setPagePhysicaArea(100,100);
同2.1的文档页面默认大小,模板页可以设置自己的页面大小。但在一般情况下应该与默认一致,这也是在创建模板页面时,本软件会自动继承公共资源区域的页面大小。不过你可以通过页面方法来这是不同与默认的页面大小。
示例代码如下:
// 创建一个OFD文档
template.setPhysicalBox(...);
同2.1的文档页面默认大小,页面页可以设置自己的页面大小。但在一般情况下应该与默认一致,这也是在创建模板页面时,本软件会自动继承公共资源区域的页面大小。不过你可以通过页面方法来这是不同与默认的页面大小。
示例代码如下:
page.setPhysicalBox(...);