pageoffice生成word目录_pageoffice 生成word - CSDN
精华内容
参与话题
  • PageOffice动态生成WORD文件

    千次阅读 2018-09-13 14:26:11
    PageOffice 组件提供的接口和对象都简洁高效,开发效率很高。不仅支持从一个空白的Word生成文件,还可以对现有的word模板做数据填充,还可以把多个word模板插入到一个word模板中不同的位置来组合生成文件,比如做一...

    PageOffice 组件提供的接口和对象都简洁高效,开发效率很高。不仅支持从一个空白的Word生成文件,还可以对现有的word模板做数据填充,还可以把多个word模板插入到一个word模板中不同的位置来组合生成文件,比如做一个试卷生成系统,甚至还可以插入图片和Excel文件到word模板中的指定位置去生成一个复合型的文档报表,功能异常强大。下面列举几个生成文件的效果代码:

    1. 从空白生成文件的代码:
        WordDocument doc = new WordDocument();
        
    	//设置内容标题
        //创建DataRegion对象,PO_title为自动添加的书签名称,书签名称需以“PO_”为前缀,切书签名称不能重复
        //三个参数分别为要新插入书签的名称、新书签的插入位置、相关联的书签名称(“[home]”代表Word文档的页首)
        DataRegion title = doc.createDataRegion("PO_title", DataRegionInsertType.After, "[home]");
        //给DataRegion对象赋值
        title.setValue("JAVA中编程实例\n");
        //设置字体:粗细、大小、字体名称、是否是斜体
        title.getFont().setBold(true);
        title.getFont().setSize(20);
        title.getFont().setName("黑体");
        title.getFont().setItalic(false);
        //定义段落对象
        ParagraphFormat titlePara = title.getParagraphFormat();
        //设置段落对齐方式
        titlePara.setAlignment(WdParagraphAlignment.wdAlignParagraphCenter);
        //设置段落行间距
        titlePara.setLineSpacingRule(WdLineSpacing.wdLineSpaceMultiple);
    
    	//设置内容
        //第一段
        //创建DataRegion对象,PO_body为自动添加的书签名称
        DataRegion body = doc.createDataRegion("PO_body", DataRegionInsertType.After, "PO_title");
        //设置字体:粗细、是否是斜体、大小、字体名称、字体颜色
        body.getFont().setBold(true);
        body.getFont().setItalic(true);
        body.getFont().setSize(10);
        //设置中文字体名称
        body.getFont().setName("楷体");
        //设置英文字体名称
        body.getFont().setNameAscii("Times New Roman");
        body.getFont().setColor(Color.red);
        //给DataRegion对象赋值
        body.setValue("首先,我向大家介绍一下套接字的概念。\n");
        //创建ParagraphFormat对象
        ParagraphFormat bodyPara = body.getParagraphFormat();
        //设置段落的行间距、对齐方式、首行缩进
        bodyPara.setLineSpacingRule(WdLineSpacing.wdLineSpaceAtLeast);
        bodyPara.setAlignment(WdParagraphAlignment.wdAlignParagraphLeft);
        bodyPara.setFirstLineIndent(21);
    
    1. 在一个word模板的文件中插入一个图片、word和Excel文档的代码:
        WordDocument doc = new WordDocument();
    	//插入图片
        // PO_body3是word模板中已存在的一个书签
        DataRegion body4 = doc.createDataRegion("PO_body4", DataRegionInsertType.After, "PO_body3");
        body4.setValue("[image]doc/logo.png[/image]");
        //嵌入其他Word文件
        //body4.Value = "[word]doc/1.doc[/word]";
        //嵌入其他Excel文件
        //body4.Value = "[excel]doc/1.xls[/excel]";
        ParagraphFormat bodyPara4 = body4.getParagraphFormat();
        bodyPara4.setAlignment(WdParagraphAlignment.wdAlignParagraphCenter);
    
    1. 操作word中的表格代码:
        WordDocument doc = new WordDocument();
    	//打开数据区域
    	DataRegion dataRegion = doc.openDataRegion("PO_regTable");
    	//打开table,openTable(index)方法中的index代表Word文档中table位置的索引,从1开始
    	Table table = dataRegion.openTable(1);
    	//给table中的单元格赋值, openCellRC(int,int)中的参数分别代表第几行、第几列,从1开始
    	table.openCellRC(3, 1).setValue("A公司");
    	table.openCellRC(3, 2).setValue("开发部");
    	table.openCellRC(3, 3).setValue("李清");
    	//插入一行,insertRowAfter方法中的参数代表第几行,从1开始
    	table.insertRowAfter(3);
    	table.openCellRC(4, 1).setValue("B公司");
    	table.openCellRC(4, 2).setValue("销售部");
    	table.openCellRC(4, 3).setValue("张三");
    
    1. 给word添加一个水印,对于实现这个效果来说,PageOffice确实已经做到简单到极致,如果用iText那个方案,需要写至少十几行代码吧(由于篇幅的限制,这里就不写了,有兴趣的话可以网上搜索一下相关的资料),但 PageOffice的代码只用下面一句:
        WordDocument doc =new WordDocument();
        //添加水印 ,设置水印的内容
        doc.getWaterMark().setText("北京某某公司");
    

    优点有以下几点:不限制于Windows平台;接口和对象的设计就是针对Office文件生成专门优化设计的,代码写起来比较舒服可读性强;编程的工作量更小,如果开发中也利用了Word模板,那开发量可以更低;生成的文件是地地道道的Word格式,生成的文件效果比较完美;也不需要像POI那样必须对doc和docx格式分别写代码;最后一点:服务器端不需要安装Office,不使用服务器端资源,所以不需要处理服务器端文件生成时的并发问题,也就是很多用户同时访问系统生成文件时服务器的压力问题。请注意这点,采用这个方案的话,文件是在客户端生成的,调用的是客户端的资源,完全符合分布式计算的思想。

    展开全文
  • java导出word的5种方式

    万次阅读 2019-01-09 08:57:19
    在网上找了好多天将数据库中信息导出到word中的解决方案,现在将这几天的总结分享一下。总的来说,java导出word大致有5种解决方案: 1:Jacob是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构建一座桥梁。...

    在网上找了好多天将数据库中信息导出到word中的解决方案,现在将这几天的总结分享一下。总的来说,java导出word大致有5种解决方案:

    1:Jacob是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构建一座桥梁。通过Jacob实现了在Java平台上对微软Office的COM接口进行调用。

      优点:调用微软Office的COM接口,生成的word文件格式规范。

      缺点:服务器只能是windows平台,不支持unix和linux,且服务器上必须安装微软Office。

    2:Apache POI包括一系列的API,它们可以操作基于MicroSoft OLE 2 Compound Document Format的各种格式文件,可以通过这些API在Java中读写Excel、Word等文件。

      优点:跨平台支持windows、unix和linux。

      缺点:相对与对word文件的处理来说,POI更适合excel处理,对于word实现一些简单文件的操作凑合,不能设置样式且生成的word文件格式不够规范。

    3:Java2word是一个在java程序中调用 MS Office Word 文档的组件(类库)。该组件提供了一组简单的接口,以便java程序调用他的服务操作Word 文档。 这些服务包括: 打开文档、新建文档、查找文字、替换文字,插入文字、插入图片、插入表格,在书签处插入文字、插入图片、插入表格等。

      优点:足够简单,操作起来要比FreeMarker简单的多。

      缺点:没有FreeMarker强大,不能够根据模版生成Word文档,word的文档的样式等信息都不能够很好的操作。

    4:FreeMarker生成word文档的功能是由XML+FreeMarker来实现的。先把word文件另存为xml,在xml文件中插入特殊的字符串占位符,将xml翻译为FreeMarker模板,最后用java来解析FreeMarker模板,编码调用FreeMarker实现文本替换并输出Doc。

      优点:比Java2word功能强大,也是纯Java编程。

      缺点:生成的文件本质上是xml,不是真正的word文件格式,有很多常用的word格式无法处理或表现怪异,比如:超链、换行、乱码、部分生成的文件打不开等。

    5:PageOffice生成word文件。PageOffice封装了微软Office繁琐的vba接口,提供了简洁易用的Java编程对象,支持生成word文件,同时实现了在线编辑word文档和读取word文档内容。

      优点:跨平台支持windows、unix和linux,生成word文件格式标准,支持文本、图片、表格、字体、段落、颜色、超链、页眉等各种格式的操作,支持多word合并,无需处理并发,不耗费服务器资源,运行稳定。

      缺点:必须在客户端生成文件(可以不显示界面),不支持纯服务器端生成文件。

    综合以上资料的参考,和网上的一些意见,最后选择了,第5种用PageOffice做导出方案。

    下面是基本的例子,以实现简单的word导出:

      读取数据库表中的信息记录填充到一个请假条的模板中,替换“部门、姓名、原因、天数、日期”几个数据位置的文本内容。
      

      主要代码:

    复制代码

        // 声明变量存储从数据库中读取的数据
        String  docName = "", docDept = "", docCause = "", docNum = "", docDate = "";
        // 数据库数据读取操作(不同的数据库用不同的代码)
        ResultSet rs = stmt.executeQuery("select * from leaveRecord where ID = " + id);
        if (rs.next()) {
            docName = rs.getString("Name");
            docDept = rs.getString("Dept");
            docCause = rs.getString("Cause");
            docNum = rs.getString("Num");
            docDate = rs.getString("SubmitTime");
        }
        rs.close();
        //创建PageOffice的WordDocument对象,操作Word文件
        WordDocument doc = new WordDocument();
        doc.openDataRegion("PO_name").setValue(docName);
        doc.openDataRegion("PO_dept").setValue(docDept);
        doc.openDataRegion("PO_cause").setValue(docCause);
        doc.openDataRegion("PO_num").setValue(docNum);
        doc.openDataRegion("PO_date").setValue(docDate);
        //创建PageOfficeCtrl对象打开文件
        PageOfficeCtrl poCtrl1 = new PageOfficeCtrl(request);
        poCtrl1.setServerPage(request.getContextPath()+"/poserver.zz"); //此行必须
        //获取数据对象
        poCtrl1.setWriter(doc);
        // 打开文档
        poCtrl1.webOpen("doc/template.doc", OpenModeType.docReadOnly, "Tom");

    复制代码

      生成的文件效果:

      

    展开全文
  • java调用PageOffice生成word

    千次阅读 2018-05-09 14:49:41
    一、在开发OA办公或与文档相关的Web系统中,难免会遇到动态生成word文档的需求,为了解决工作中遇到导出word文档的需求,前一段时间上网找了一些资料,在word导出这方面有很多工具可以使用,jacob、poi、java2word、...

    一、在开发OA办公或与文档相关的Web系统中,难免会遇到动态生成word文档的需求,为了解决工作中遇到导出word文档的需求,前一段时间上网找了一些资料,在word导出这方面有很多工具可以使用,jacob、poi、java2word、itext。jacob要求服务器必须是windows操作系统,服务器上还必须安装office软件,果断放弃!poi需要针对doc和docx两种格式写不同的代码,增加了程序的复杂度。java2doc 是对 jacob 的封装,同样放弃!最后选定了用itext来导出word,网上一些资料说itext导出word功能太简单,通过试用之后,封装工具类,使用起来确实挺方便,但是导出的word文档在细节方面很难达到要求,比如:字体、行距、字体间距、首行缩进等。

    二、由于itext导出的word有各种各样的小问题,只能另找其他的解决方案,经过一个朋友推荐,可用PageOffice组件来导出word,其效果能与用户需求的word文档达到完美的一致,而且编程接口简单,调用很方便。总的来说就是制作模板(用PO_开头的书签作为数据占位符),然后编程调用PageOffice接口用真实数据替换模板中的占位符,最后生成word。下面看例子:

    1. 制作模板

      打开word模板插入书签:PO_Dept、PO_Name、PO_Cause、PO_Num、PO_Date,如下图所示

      

    2. 编写代码

      调用PageOffice接口,给word模板填充数据生成word文档:

    复制代码
     1     // 声明变量存储从数据库中读取的数据 2     String  docName = "", docDept = "", docCause = "", docNum = "", docDate = ""; 3     // 数据库数据读取操作(不同的数据库用不同的代码) 4     ResultSet rs = stmt.executeQuery("select * from leaveRecord where ID = " + id); 5     if (rs.next()) { 6         docName = rs.getString("Name"); 7         docDept = rs.getString("Dept"); 8         docCause = rs.getString("Cause"); 9         docNum = rs.getString("Num");10         docDate = rs.getString("SubmitTime");11     }12     rs.close();13     //创建PageOffice的WordDocument对象,操作Word文件14     WordDocument doc = new WordDocument();15     doc.openDataRegion("PO_name").setValue(docName);16     doc.openDataRegion("PO_dept").setValue(docDept);17     doc.openDataRegion("PO_cause").setValue(docCause);18     doc.openDataRegion("PO_num").setValue(docNum);19     doc.openDataRegion("PO_date").setValue(docDate);20     //创建PageOfficeCtrl对象打开文件21     PageOfficeCtrl poCtrl1 = new PageOfficeCtrl(request);22     poCtrl1.setServerPage(request.getContextPath()+"/poserver.zz"); //此行必须23     //获取数据对象24     poCtrl1.setWriter(doc);25     // 打开文档26     poCtrl1.webOpen("doc/template.doc", OpenModeType.docReadOnly, "Tom");
    复制代码

    3. 生成效果图

      

    三、 源码下载

      https://download.csdn.net/download/zi_wu_xian/10399345

    展开全文
  • 问题1: document....解决方法是在word 文件>选项>加载项 ,在加载项找到 ZoomSeal WordAddin 点击下方的转到 然后将 ZoomSeal WordAddin删除,重新选择 安装目录下的ZSWordAddin.dll 问题2:  new Acti

    问题1:

    document.getElementById("PageOfficeCtrl1").webSaveAsPDF(); 调用失败

    document.getElementById("PageOfficeCtrl1").ZoomSeal.AddSeal();调用失败

    解决方法是在word 文件>选项>加载项 ,在加载项找到 ZoomSeal WordAddin  点击下方的转到 然后将 ZoomSeal WordAddin删除,重新选择 安装目录下的ZSWordAddin.dll


    问题2:

     new ActiveXComponent("Word.Application"); 未执行,网上有说 拷贝两个jacob-1.14.3-x64.dll和jacob-1.14.3-x86.dll 到jdk什么的目录下,我也拷贝了无效

    然后我重新执行了 Maven install 后,就好了

    展开全文
  • Java动态生成word文档(图文并茂)

    千次阅读 2018-05-07 16:39:03
    很多情况下,软件开发者需要从数据库读取数据,然后将数据动态填充到手工预先准备好的Word模板文档里,这对于大批量生成拥有相同格式排版的正式文件非常有用,这个功能应用PageOffice的基本动态填充功能即可实现。...
  • java操作word生成水印

    千次阅读 2018-05-08 11:05:32
    应用场景 为了保护版权或辨别文件的真伪,有时需要在生成Word文件中动态添加水印,PageOffice组件的WaterMark类就封装了给在线编辑的Word文件添加水印这一功能,调用接口非常简单。WaterMark类所属命名空间 ...
  • java实现word文档转pdf,并添加水印

    万次阅读 热门讨论 2019-03-12 15:09:39
    前段时间,项目需要自动生成word文档,用WordFreeMarker生成word文档后,又要求生成的文档能在浏览器浏览,思来想去,把word文档转成pdf就好了,于是乎研究了一下。 将word文档转化为PDF是项目中常见的需求之一,...
  • PageOffice--实现用户自定义Word模板

    千次阅读 2018-09-12 14:19:50
    导读: 在涉及到word文档生成的项目中,一般采用编程将数据填充到word模板中生成文件的实现方式,如果模板由开发人员自己设计,那么...在实际的开发过程中,针对导出生成word文档的需求,都是用程序填充数据到word...
  • Java语言实现word转PDF(10分钟解决)

    万次阅读 2018-10-10 14:59:42
    前言: ...关键是做出来的文件格式有各种各样的问题,有时生成的文件打不开,有时文档格式混乱。搞了好几天的需求终于实现了,最后看到效果那一刻。。。唉呀妈呀 脑瓜疼 脑瓜疼 此时就需要另辟新径了...
  • SpringBoot PageOffice 在线编辑 (完整版、有源码)

    千次阅读 热门讨论 2019-05-28 10:26:31
    文章目录简介实例环境准备生成license.lic文件把jar安装到maven使项目能够使用maven引入pom.xml 配置application.properties配置项目结构、代码介绍项目结构:BeanLinitConf类说明,PageOffice注入OfficeOnlineApi类...
  • jsp页面导出成word文件

    千次阅读 2012-07-29 15:37:43
    String fileName = "文件名.doc"; //对中文文件名编码 fileName = URLEncoder.encode("文件名", "UTF-8") + ".doc"; response.setHeader("Content-disposition", "attachment; filename=" + fileName);...
  • 使用PHPWord生成word文档

    万次阅读 2018-10-09 13:06:46
    我们使用Composer来安装PHPWord。 composer require phpoffice/phpword 如何使用 自动加载 安装好phpword后,新建一个php文档,引入autoload.php。 require 'vendor/autoload.php'; 实例...
  • java操作word(一)

    千次阅读 2018-05-15 10:51:03
    一、 需求背景 在做项目的过程中,经常会遇到要把数据库数据导出到Word文件中的需求,因为很多情况下,我们需要将数据导出到WORD中进行打印。此需求可以通过用程序填充数据到word模板中来实现。所谓模板也就是标记...
  • Java Web项目中使用Freemarker生成Word文档

    万次阅读 多人点赞 2014-09-21 15:42:43
    Web项目中生成Word文档的操作屡见不鲜,基于Java的解决方案也是很多的,包括使用Jacob、Apache POI、Java2Word、iText等各种方式,其实在从Office 2003开始,就可以将Office文档转换成XML文件,这样只要将需要填入的...
  • 使用卓正PageOffice 动态填充Word文档

    千次阅读 2018-09-11 15:26:34
    PageOffice有基本了解的用户可能知道,PageOffice可以给word文档的指定位置进行填充,这里我们所说的指定位置在PageOffice的专业术语里面叫做“数据区域”,模板数据区域的具体制作和详细描述这里不做说明,具体的制作...
  • java实现各种office文档之间的比较

    千次阅读 2018-11-21 11:46:35
    实现单位想要实现word文档(主要是把月报模版和生成的月报进行比较,以确定生成的结果是否符合要求:除替换符之外的位置全部一样)比较,因为之前的word文档之间插入和替换这一功能也是我实现的(jacob实现)所以想...
  • 最近做项目用到word、excel的在线浏览编辑功能,在网上找了很多的工具软件,一...此次开发用到的是卓正公司的pageoffice集成,需要购买使用。 简单介绍下Page Office: 1. 在web网页里打开、编辑、打印预览、打印W...
  • 3、在线打开word报告,报jQuery未定义错误,需要升级pageoffice版本 4、您的Office软件不支持这个命令,或者这个命令在打开文档时已被禁止 5、本地安装office2016版本时,pageoffice保存时,报保存至服务器失败 问题...
  • C#在线预览文档(word,excel,pdf,txt,png) 1、预览方式:将word文件转换成html文件然后预览html文件 2、预览word文件:需要引入Interop.Microsoft.Office.Interop.Word.dll(Com组件) 3、预览Excel文件...
1 2 3 4 5 ... 20
收藏数 5,551
精华内容 2,220
关键字:

pageoffice生成word目录