JAVA版本的OFD板式文件创建工具easyofd.
功能包含了图像、 图像、 文字、和模版页功能。同时也支持OFD文件的数字签名及验签,电子签章及验签。
本JAVA版本的easyofd使用原生方式创建板式文件,不依赖JAVA的SWT库。
项目地址:http://wiki.easyofd.cn/zh/JAVA
浏览器查看OFD文件控件地址: http://www.easyofd.cn
代码地址:https://github.com/11627685/easyofd-java
一、模板
1.1 创建模版
OFD的模板也是页面,我们使用的页面继承了模板页面。以此我们可以像创建页面一样创建一个模板,该类只要一个参数,就是OFDocument类实例。
// 创建一个OFD文档
OFDocument ofDocument = new OFDocument();
// 创建一个OFD文档的模板
OFDTemplate template = new OFDTemplate(ofDocument);
Copy
1.2 向模版增加绘制元素
如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);
Copy
上述例子中,我们向页面增加了一个(100*100)的矩形,并且把他的填充颜色设置成了天蓝色。紧接着我们向模板文件内增加了文字和一个原。
1.3 注册模版
只有向公共资源注册后获取资源ID的模板页面,才可以被其他页面使用。公共数据资源类的注册方法如下:
-
addTemplate
public int addTemplate(OFDTemplate template)
参数:
template
- 模板对象返回:
返回模板ID
示例代码如下:
// 创建一个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);
Copy
1.4 使用模版
有了模板资源的ID后,就可以设置页面引用的模板,页面的设置模板方法如下:
-
addTemplatePage
public void addTemplatePage(long TemplateID, java.lang.String ZOrder)
设置模板页
参数:
TemplateID
注册的模板IDZOrder
- - 详细见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);
Copy
1.5 文件效果
二、页面大小设置
2.1 文档页面默认大小
OFD板式文件会在公共资源区域设置一个页面默认大小,本软件默认大小为A4纸张(210MM* 297MM),可以在创建OFDocument对象时就设置页面默认大小。
OFD有以下四种区域:
名称 | 说明 | 备注 |
---|---|---|
PhysicalBox | 页面物理区域,左上角的坐标为页面空间坐标系的原点 | 必选 |
ApplicationBox | 显示区域,页面内容实际显示或打印输出的区域,位于页面物理区域内,包含页眉、页脚、版心等内容。 例外处理如果显示区域不完全位于页面物理区域内,页面物理区域外的部分则被忽略。如果显示区域完全位于页面物理区外,则该页为空白页 | 可选 |
ContentBox | 版心区域,即文件的正文区域,位于显示区域内。左上角的坐标决定了其在显示区域内的位置。 例外处理如果版心区域不完全位于显示区域内,显示区域外的部分则被忽略。如果版心区域完全位于显示区域外,则版心内容不被绘制 | 可选 |
BleedBox | 出血区域,即超出设备物理限制的额外出血区域,位于页面物理区域外。不出现时,默认值为页面物理区域。 例外处理如果出血区域不完全位于页面物理区域外,页面物理区域内的部分则被忽略。如果出血区域完全位于页面物理区域内,出血区域无效 | 可选 |
我们可以公共公共资源类来设置上述区域大小,示例代码如下:
// 创建一个OFD文档
OFDocument ofDocument = new OFDocument();
ofDocument.getOfdCommonData().setPagePhysicaArea(100,100);
Copy
2.2 模板的页面大小设置
同2.1的文档页面默认大小,模板页可以设置自己的页面大小。但在一般情况下应该与默认一致,这也是在创建模板页面时,本软件会自动继承公共资源区域的页面大小。不过你可以通过页面方法来这是不同与默认的页面大小。
示例代码如下:
// 创建一个OFD文档
template.setPhysicalBox(...);
Copy
2.3 页面的页面大小设置
同2.1的文档页面默认大小,页面页可以设置自己的页面大小。但在一般情况下应该与默认一致,这也是在创建模板页面时,本软件会自动继承公共资源区域的页面大小。不过你可以通过页面方法来这是不同与默认的页面大小。
示例代码如下:
page.setPhysicalBox(...);
Copy