博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PageOfficeV4.0 FileMaker组件功能简介
阅读量:5736 次
发布时间:2019-06-18

本文共 2371 字,大约阅读时间需要 7 分钟。

hot3.png

应用场景

在一些特殊应用场合,客户希望在服务器上生成文档的同时并填充数据,客户端的页面不显示打开文档。

目前服务器上生成文档第一种就是方案是采用Jacob, 但是局限于windows平台,往往许多Java程序运行于Linux等其他操作系统,在此不讨论该方案。

第二是POI,但是服务器上生成文档对服务器压力很大,而且它的Excel处理勉强可以, Word模块还局限于读取Word的文本内容,写Word文件的功能就更弱;另一个致命的问题是,处理doc格式和处理docx格式的类几乎完全不同,要分开针对不同的格式写不同的代码,这就意味着用户上传的docx格式文件如果使用了doc的扩展名,程序马上崩溃。而且POI结构混,编码比较复杂,开发过程非常消耗时间和精力。

所以针对这一系列的问题,PageOffice开发出来了FileMakerCtrl组件,该组件完全符合PageOffice的架构设计,FileMakerCtrl在客户端生成Office或PDF文档并上传到服务器,但是并不在Web网页里显示Office文档。

FileMakerCtrl对象使用说明

FileMakerCtrl 类是PageOffice开发平台中的核心类。和PageOfficeCtrl控件不同,FileMakerCtrl在Web网页里不显示Office文档,而是直接在线生成Office文档或将Office文档转换成PDF文档,或动态生成PDF文档。

注:以下代码以word为例

1.动态填充word文档并上传到服务器

请参考PageOffice产品开发包中Samples4的示例:

二、13、FileMaker转换单个文档(以Word为例)(专业版、企业版)

FileMakerCtrl fmCtrl = new FileMakerCtrl(request);   fmCtrl.setServerPage(request.getContextPath()+"/poserver.zz");	   WordDocument doc = new WordDocument();   //给数据区域赋值,即把数据填充到模板中相应的位置   doc.openDataRegion("PO_company").setValue("北京卓正志远软件有限公司");   fmCtrl.setWriter(doc);   fmCtrl.setSaveFilePage("SaveMaker.jsp");    //OnProgressComplete为回调函数,文档生成之后在页面里触发此js事件。   //如果您需要响应此事件,您需要在当前 JSP 页面里定义一个 JavaScript 函数。   fmCtrl.setJsFunction_OnProgressComplete("OnProgressComplete()");   fmCtrl.fillDocument("doc/template.doc", DocumentOpenType.Word);

OnProgressComplete的使用: 比如需要实现文件生成后弹出另存为对话框,让用户保存文件到本地电脑,那么js可以这样写:

function OnProgressComplete() {	document.getElementById("FileMakerCtrl1").ShowDialog(2); //弹出另存对话框}

2.动态将word文档转换为pdf文档并上传到服务器

请参考PageOffice产品开发包中Samples4的示例:

二、34、FileMaker转换单个文档为PDF(以Word为例) (专业版、企业版)

FileMakerCtrl fmCtrl = new FileMakerCtrl(request);	fmCtrl.setServerPage(request.getContextPath()+"/poserver.zz");	WordDocument doc = new WordDocument();	doc.openDataRegion("PO_company").setValue("北京卓正志远软件有限公司");	fmCtrl.setWriter(doc);    fmCtrl.setSaveFilePage("SaveMaker.jsp");	fmCtrl.setJsFunction_OnProgressComplete("OnProgressComplete()");	fmCtrl.fillDocumentAsPDF("doc/template.doc",DocumentOpenType.Word, "a.pdf");

3.批量生成文档并上传到服务器

请参考PageOffice产品开发包中Samples4的示例:

三、1、FileMaker批量转换文档(以Word为例)(专业版、企业版)

批量生成文档就是基于FileMaker转换单个文档所使用的技术,在OnProgressComplete事件中执行js方法刷新页面中的iframe页面循环的加载生成不同的文件。

FileMakerCtrl和PageOfficeCtrl的区别

FileMakerCtrl本质上就是一个没有界面的PageOfficeCtrl,也是调用客户端Office程序处理文件的,都可以实现对文档进行动态填充、动态转PDF等功能,唯一的区别就是FileMakerCtrl在线打开填充和转换文档的时候客户端页面不显示打开的文档内容,而PageOfficeCtrl显示打开的文档内容。

转载于:https://my.oschina.net/u/3850288/blog/2050299

你可能感兴趣的文章
【洛天依】几首歌的翻唱(无伴奏)
查看>>
OpenSSL初瞻及本系列的博文的缘由
查看>>
ISO8583接口的详细资料
查看>>
tmux不自动加载配置文件.tmux.conf
查看>>
经验分享:JavaScript小技巧
查看>>
[MOSEK] Stupid things when using mosek
查看>>
程序实例---栈的顺序实现和链式实现
查看>>
服务的使用
查看>>
Oracle 用户与模式
查看>>
MairDB 初始数据库与表 (二)
查看>>
拥在怀里
查看>>
chm文件打开,有目录无内容
查看>>
whereis、find、which、locate的区别
查看>>
一点不懂到小白的linux系统运维经历分享
查看>>
桌面支持--打不开网页上的pdf附件解决办法(ie-tools-compatibility)
查看>>
nagios监控windows 改了NSclient++默认端口 注意事项
查看>>
干货 | JAVA代码引起的NATIVE野指针问题(上)
查看>>
POI getDataFormat() 格式对照
查看>>
Python 中的进程、线程、协程、同步、异步、回调
查看>>
好的产品原型具有哪些特点?
查看>>