`
zi_wu_xian
  • 浏览: 31580 次
社区版块
存档分类
最新评论

Java动态生成word文档(图文并茂)

阅读更多

很多情况下,软件开发者需要从数据库读取数据,然后将数据动态填充到手工预先准备好的Word模板文档里,这对于大批量生成拥有相同格式排版的正式文件非常有用,这个功能应用PageOffice的基本动态填充功能即可实现。但若是用户想动态生成一个没有固定模版的公文时,换句话说,没有办法事先准备一个固定格式的模板时,就需要开发人员在后台用代码实现Word文档的从零到图文并茂的动态生成功能了。这里的“零”指的是Word空白文档。

  那如何实现Word文档的从无到有呢,下面就把利用PageOffice实现这一功能的过程介绍一下。例如,想生成一个Word文档,里面的内容为:标题(粗体、黑体、字体大小为20、居中显示)、第一段内容(内容(略)、字体倾斜、字体大小为10、中文“楷体”、英文“Times New Roman”、红色、最小行间距、左对齐、首行缩进)、第二段内容(内容(略)、字体大小为12、黑体、1.5倍行间距、左对齐、首行缩进)、第三段内容(内容(略)、字体大小为14、华文彩云、2倍行间距、左对齐、首行缩进)、第四段内容插入一张图片。

  1. 百度一下PageOffice,从官网下载PageOffice for Java的开发包;

  2. 拷贝“集成文件”文件夹中的 lib 文件夹覆盖到您自己 Web 项目中 WEB-INF 目录下;

  3. 打开“集成文件”文件夹中的 web.xml 文件,拷贝PageOffice的相关配置到自己 Web 项目中的 web.xml 文件中;

  4. 编程调用PageOffice的WordDocument对象,生成图文并茂的文件。代码如下:

复制代码
    PageOfficeCtrl poCtrl1 = new PageOfficeCtrl(request);
    poCtrl1.setServerPage(request.getContextPath()+"/poserver.zz"); 
    //创建WordDocument对象
    WordDocument doc = new WordDocument();
    //设置内容标题
    //创建DataRegion对象,PO_title为自动添加的书签名称,书签名称需以“PO_”为前缀,切书签名称不能重复
    //三个参数分别为要新插入书签的名称、新书签的插入位置、相关联的书签名称(“[home]”代表Word文档的第一个位置)
    DataRegion title = doc.createDataRegion("PO_title",
            DataRegionInsertType.After, "[home]");
    //给DataRegion对象赋值
    title.setValue("C#中Socket多线程编程实例\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(false);
    body.getFont().setItalic(true);
    body.getFont().setSize(10);
    //设置中文字体名称
    body.getFont().setName("楷体");
    //设置英文字体名称
    body.getFont().setName("Times New Roman");
    body.getFont().setColor(Color.RED);
    //给DataRegion对象赋值
    body.setValue("是微软随着VS.net新推出的一门语言。它作为一门新兴的语言,有着C++的强健,又有着VB等的RAD特性。而且,微软推出C#主要的目的是为了对抗Sun公司的Java。大家都知道Java语言的强大功能,尤其在网络编程方面。于是,C#在网络编程方面也自然不甘落后于人。本文就向大家介绍一下C#下实现套接字(Sockets)编程的一些基本知识,以期能使大家对此有个大致了解。首先,我向大家介绍一下套接字的概念。\n");
    //创建ParagraphFormat对象
    ParagraphFormat bodyPara = body.getParagraphFormat();
    //设置段落的行间距、对齐方式、首行缩进
    bodyPara.setLineSpacingRule(WdLineSpacing.wdLineSpaceAtLeast);
    bodyPara.setAlignment(WdParagraphAlignment.wdAlignParagraphLeft);
    bodyPara.setFirstLineIndent(21);

    //第二段
    DataRegion body2 = doc.createDataRegion("PO_body2",DataRegionInsertType.After, "PO_body");
    body2.getFont().setBold(false);
    body2.getFont().setSize(12);
    body2.getFont().setName("黑体");
    body2.setValue("套接字是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。可以将套接字看作不同主机间的进程进行双向通信的端点,它构成了单个主机内及整个网络间的编程界面。套接字存在于通信域中,通信域是为了处理一般的线程通过套接字通信而引进的一种抽象概念。套接字通常和同一个域中的套接字交换数据(数据交换也可能穿越域的界限,但这时一定要执行某种解释程序)。各种进程使用这个相同的域互相之间用Internet协议簇来进行通信。\n");
    //body2.setValue("[image]../images/logo.jpg[/image]");
    ParagraphFormat bodyPara2 = body2.getParagraphFormat();
    bodyPara2.setLineSpacingRule(WdLineSpacing.wdLineSpace1pt5);
    bodyPara2.setAlignment(WdParagraphAlignment.wdAlignParagraphLeft);
    bodyPara2.setFirstLineIndent(21);

    //第三段
    DataRegion body3 = doc.createDataRegion("PO_body3", DataRegionInsertType.After, "PO_body2");
    body3.getFont().setBold(false);
    body3.getFont().setColor(Color.getHSBColor(0, 128, 228));
    body3.getFont().setSize(14);
    body3.getFont().setName("华文彩云");
    body3.setValue("套接字可以根据通信性质分类,这种性质对于用户是可见的。应用程序一般仅在同一类的套接字间进行通信。不过只要底层的通信协议允许,不同类型的套接字间也照样可以通信。套接字有两种不同的类型:流套接字和数据报套接字。\n");
    ParagraphFormat bodyPara3 = body3.getParagraphFormat();
    bodyPara3.setLineSpacingRule(WdLineSpacing.wdLineSpaceDouble);
    bodyPara3.setAlignment(WdParagraphAlignment.wdAlignParagraphLeft);
    bodyPara3.setFirstLineIndent(21);

        //第四段,插入图片
    DataRegion body4 = doc.createDataRegion("PO_body4", DataRegionInsertType.After, "PO_body3");
    body4.setValue("[image]doc/logo.png[/image]");
    //body4.setValue("[word]doc/1.doc[/word]");//还可嵌入其他Word文件
    ParagraphFormat bodyPara4 = body4.getParagraphFormat();
    bodyPara4.setAlignment(WdParagraphAlignment.wdAlignParagraphCenter);

    poCtrl1.setWriter(doc);
    poCtrl1.webOpen("doc/template.doc", OpenModeType.docNormalEdit,"张三");
复制代码

  5. 生成的文件效果如下:

  

  6. 相关示例:拷贝PageOffice开发包中的 Samples4 文 件 夹 到 Tomcat 的 Webapps 目 录 下 , 访 问 : http://localhost:8080/Samples4/index.html,查看示例:三、7、完全编程实现动态生成Word文件

分享到:
评论

相关推荐

    VB6编程生成图文并茂的Word文档

    在VB6(Visual Basic 6)环境中,生成...通过熟练掌握这些技巧,你可以创建出功能丰富的自动化文档生成系统。务必注意,使用完Word对象后释放它们以防止内存泄漏,如`Set objDoc = Nothing`和`Set objWord = Nothing`。

    VB6编程生成图文并茂的Word文档.rar

    在VB6(Visual Basic 6)环境中,生成图文并茂的Word文档是一项常见的任务,尤其在自动化报告生成、数据导出或用户手册制作时。这个压缩包“VB6编程生成图文并茂的Word文档.rar”显然包含了一组资源,帮助开发者实现...

    ASP.NET(c#) 从零动态生成Word文件(用程序设置文本段落格式、填充数据)

    ASP.NET(c#) 对一个空白的word文件编程,生成图文并茂的Word文件。可以用程序设置文本段落格式、填充数据、插入图片、插入另一个word或excel文件(企业版支持) 不是服务器端自动化。 使用的是PageOffice,除了提供...

    java导出格式文档

    PageOffice是一款强大的Web办公组件,它允许开发者通过简单的API调用来实现数据的动态填充和各种格式的文档生成,包括Word、Excel、PDF等。本文主要聚焦于如何使用PageOffice从零开始动态生成图文并茂的Word文档。 ...

    用Python生成图文并茂的PDF报告(含Python源码).rar

    它的逻辑和编辑一个word文档或者PPT很像。有两种方法: 1)建立一个空白文档,然后在上面写文字、画图等; 2)建立一个空白list,以填充表格的形式插入各种文本框、图片等,最后生成PDF文档。 因为需要产生一份给...

    利用python程序生成word和PDF文档的方法

    在Python编程中,生成Word和PDF文档是常见的需求,尤其是在自动化报告生成、数据可视化或者Web应用中。本篇文章将详细介绍如何利用Python实现这一目标,主要关注`python-docx`库用于生成Word文档,以及`reportlab`库...

    在VC中利用WORD生成图文报告

    描述:本文深入探讨了如何在Visual C++(VC)环境中,利用Microsoft Word的模板功能来生成图文并茂的报告。对于那些需要在应用程序中嵌入高质量报告输出的开发者来说,这种方法提供了一个高效且灵活的解决方案。 ...

    如何将图文并茂的网页快速转换为WPS(WORD)文档.docx

    如何将图文并茂的网页快速转换为WPS(WORD)文档.docx 在这个资源中,我们将学习如何快速将图文并茂的网页转换为WPS(WORD)文档.docx。这个过程可以通过使用WPS 2021来实现,不需要复制文字、下载图片、插入图片等...

    SSM框架整合详细word文档

    非常详细的文档,图文并茂,里面的图可能有点大,不过没关系,文档里面涉及的图,压缩包里面全有,没错,全有! 可能文档有点乱,没关系,可以看我的博客,搜Java web至 spring+mybatis+spring mvc 框架整合

    Word文件生成CHM文件工具

    用户可以利用Word创建内容丰富、图文并茂的文档,然后通过转换工具将其转换为CHM格式,保持原有的排版和样式。 3. **转换过程**:使用"Word文件生成CHM文件工具"时,首先需要在Word中准备文档,包括设置页眉、页脚...

    用VC控制Word生成仿真报告

    本文将详细介绍如何在VC环境中通过编程控制Word文档,实现自动生成图文并茂的仿真报告。这一过程涉及到了COM(Component Object Model,组件对象模型)技术、Word自动化以及VC与Word对象的交互。 首先,需要明确VC...

    Matlab与java接口(图文并茂)

    1. MATLAB版本:至少要求R2006b(MATLAB 7.3),因为该版本开始引入了Java Builder,用于生成Java组件。检查MATLAB安装目录下的toolbox子目录,确保有javabuilder这一组件。 2. JDK版本:安装JDK1.5及以上版本,以...

    Aspose.Words控件导出Word示例

    Aspose.Words是一款强大的文档处理库,主要用于在.NET和Java应用程序中创建、操作和转换Microsoft Word文档。这个控件提供了一系列的功能,使得开发者能够轻松地处理Word文档的各种任务,包括导入、导出、编辑和格式...

    IBMV7000配置实施文档图文并茂.pdf

    IBMV7000配置实施文档图文并茂.pdf

    Excel表格+Word文档各类各行业模板-学校财务工作考核条例.zip

    《Excel表格+Word文档在教育财务管理中的应用》 在当今数字化时代,Excel表格和Word文档已成为各行各业工作中不可或缺的工具,特别是在教育财务管理中,它们的作用尤为突出。本资料包"Excel表格+Word文档各类各行业...

    Excel表格+Word文档各类各行业模板-事业单位财务月报.zip

    同时,Word文档还可以插入Excel图表,实现图文并茂的报告呈现。通过Word的页眉页脚、目录、引用等功能,可以规范报告的格式,提高阅读体验。 结合这两个工具,事业单位财务人员可以高效地完成月报的编制工作。例如...

    用WPS插件一步完成文档图文并茂.docx

    标题中的“用WPS插件一步完成文档图文并茂”指的是使用WPS Office 2021个人版中的“查资料”插件来快速、简便地在文档中插入和管理网络图片,使得文档内容更加丰富多彩。这个插件将网络资源与传统的剪贴画库功能相...

    Excel表格+Word文档各类各行业模板-图面记录表.zip

    8. **数据整合**:Excel与Word的结合使用,允许用户将数据分析结果直接插入Word文档,形成图文并茂的报告,方便理解和交流。 9. **自定义能力**:虽然模板提供了基础框架,用户仍然可以根据自身需求进行调整,添加...

    Java视频代码和PPT

    在Java平台上,JDK(Java Development Kit)是开发者的必备工具,包含了Java编译器、JRE(Java Runtime Environment)以及各种开发工具,如Javadoc(生成API文档)和JProfiler(性能分析)。Eclipse和IntelliJ IDEA...

Global site tag (gtag.js) - Google Analytics