作者:乔山办公网日期:
返回目录:word文档
首先,通过xml模板可以将基本上所有的百格式都事先锁定,包括页码和分页,只要你事先预设好就能够通过freemarker实现生成,
接下来就是我这个问题了,目录怎么解决,下度面是解决思路:
1:目录的内容可以根据之前其他的内容一样解决,通过XML模板预先设置好,
2:目录的页码已经研究过是不能直接通过xml模板实现动态对应了(至少我没搞定问0.0)
3:由于不能够一步到位,我采取了在模板中预留了一页空白页,只答留了抬头的目录版两个字,然后通过查询目录二字进行目录的生成,
这个功能也是我刚刚折腾出来的0.0目前还没测试能不能用模板生成目录后再更新目录0.0,不过想想可以直接生成目录应该就不用这么麻烦了,至于word生成后的修改0.0我觉得还是以后再说吧.....
整体权来说应该还算完美解决了,代码我就不在这贴出来了~
虽然中间折腾了半天走了半天弯路~
讲道理还是用的jacob来实现的。。
建议你参考下pageoffice。网上搜有很多他的示例代码的。
WORD自动生成目录图解教程
用WORD自动生成目录不但快捷,而且阅读查找内容时也很方便,只是按住Ctrl点击目录中的某一章节就会直接跳转到该页,更重要的是便于今后修改,因为写完的文章难免多次修改,增加或删减内容。倘若用手工给目录标页,中间内容一改,后面页码全要改是一件很让人头痛的事情。如果用WORD自动生成目录,你可以任意修改文章内容,最后更新一下目录就会重新把目录对应到相应的页码上去。
WORD自动生成目录教程
假如文章中标题e79fa5e98193e4b893e5b19e332格式为
第一节……大标题(一级)
1.1……小标题(二级)
1.1.1—……小标题下的小标题(三级)
……
第N节……大标题(一级)
n.1……小标题(二级)
n.1.1—……小标题下的小标题(三级)
自动生成文章目录的操作:
一、设置标题格式
1.选中文章中的所有一级标题;
2.在“格式”工具栏的左端,“样式”列表中单击“标题1”。
仿照步骤1、2设置二、三级标题格式为标题2、标题3。
二、自动生成目录
1.把光标定位到文章第1页的首行第1个字符左侧(目录应在文章的前面);
2.执行菜单命令“插入/引用/索引和目录”打开“索引的目录”对话框;
3.在对话框中单击“目录”选项卡,进行相关设置后,单击“确定”按钮,文章的目录自动生成完成。
友情提示:
目录页码应该与正文页码编码不同。
把光标定位在目录页末,执行“插入/分隔符/下一页/确定”操作,在目录与正文之间插入分页符;
执行“视图/页眉和页脚”命令,把光标定位到正文首页的页脚处,单击“页眉和页脚”工具栏上的“链接到前一个”按钮正文页脚与目录页脚的链接;
执行“插入/页码”命令,在“格式”中选择页码格式、选中“起始页码”为“1”,单击“确定。
至此完成正文的页码插入。
目录如果是多页,插入页码时可以选择与正文页码不同的页码格式。当然,如果目录只有一页,没有必要插入页码。
如果没看懂可以看下面图文教程
步骤:(以下内容在WORD2003中操作,其它版本WORD略有差别,但大同小异。)
1.在[格式]中选[样式与格式]
2.出现右边的一条“样式格式”栏,这里面主要就是用到标题1,标题2,标题3。把标题1,标题2,标题3分别应用到文中各个章节的标题上。例如:文中的“第一章 制冷概论”我们就需要用标题1定义。而“1.1制冷技术的发展历史”就用标题2定义。如果有1.1.1×××那就用标题3来定义。
3.当然标题1,标题2,标题3的属性(如字体大小,居中,加粗,等等)可以自行修改的。修改方法:右键点击“标题1”选“修改”,会弹出修改菜单,您可以根据自己的要求自行修改
4.用标题1,2,3分别去定义文中的每一章节。定义时很方便,只要把光标点到“第一章 制冷概论”上,然后用鼠标左键点一下右边的标题1,就定义好了;同样方法用标题2,3定义1.1;1.1.1;依此类推,第二章,第三章也这样定义,直到全文节尾。
5.当都定义好后,我们就可以生成目录了。把光标移到文章最开头你要插入目录的空白位置,选[插入]--[引用]--[索引和目录]
6.选第二个选项卡[目录],然后点右下的确定。就OK了。
上图就是自动生成的目录
7.当你重新修改文章内容后,你需要更新一下目录,方法是:在目录区域内,点右键,选[更新域]
8.当选[更新域]后,会出现上图的选框,选第二个“更新整个目录”点确定。就OK了
阅读目录
1. 制作 Word 模版,将你需要动态生成的字段用${}替换。
2. 将 Word文档保存为 xml 。
3. 引入项目。
项目中需要用 java 程序生成doc 文件,百度一番,发现FreeMarker 的评e799bee5baa6e58685e5aeb9361价比较高。
FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出,至于想详细了解 FreeMarker 的请自行百度。
制作 Word 模版,将你需要动态生成的字段用${}替换。如:${name}、${age}
将 Word文档保存为 xml。
引入项目。将 xml 文件更改后缀名 为 .ftl, 然后引用到你的项目中。
需要注意的问题:
a. word 版本不能低于 2003 ,因为 2003 才开始支持 xml。备注:
a. template.process(),接受一个 Map 和 输入流做为入参,Map 既是你需要动态生成到 doc 里面的数据,字段名必须与你在 .ftl 里面定义的一致;
b. 如果你想利用这段代码,需要有一个 .ftl 文件,并且在你的项目 src 目录下面新建 template 目录;
c.辅助文件"FreeMarker.jar 、实例项目的.ftl "。