Aspose.Words for Java是一个功能强大的Java Word文档处理组件,支持文档的生成、修改、转换、渲染等功能。本文将为您全面介绍Aspose.Words的主要功能与用法。

一、文档的生成

我们可以通过Aspose.Words完全通过Java代码生成Word文档,而无需使用Microsoft Word。

// 创建空白文档
Document doc = new Document();// 添加段落
Paragraph para = doc.getFirstSection().addParagraph();
para.appendChild("Hello world!");// 保存文档
doc.save("D:\\test.docx");

二、打开和修改现有Word文档

Aspose.Words读取和更新现有的word文档:

// 读取文档
Document doc = new Document("D:\\test.docx");// 访问各个元素
Paragraph firstPara = doc.getFirstSection().getBody().getFirstParagraph();
firstPara.getRuns().get(0).setText("Hi there!");  // 插入&删除元素
Paragraph newPara = doc.getFirstSection().addParagraph("New paragraph");
doc.getFirstSection().getBody().removeChild(newPara);  // 保存更新
doc.save("D:\\test.docx");

三、文档格式转换

Aspose.Words for Java支持将Word文档转换为多种格式,如PDF、HTML、EPUB、XML等。

// 加载word文档
Document doc = new Document("D:\\test.docx");// 转换为PDF
doc.save("D:\\test.pdf", SaveFormat.PDF); // 转换为HTML
doc.save("D:\\test.html", SaveFormat.HTML);

四、管理样式

Aspose.Words可以方便地创建、访问和修改文档中的样式:

/ 创建样式
Style style = doc.getStyles().add(StyleType.PARAGRAPH, "MyStyle");   // 设置样式属性
style.getFont().setBold(true);
style.getParagraphFormat().setAlignment(ParagraphAlignment.CENTER);// 应用样式
Paragraph para = doc.getFirstSection().getBody().addParagraph();
para.getParagraphFormat().setStyle(style);// 修改样式
style.getFont().setColor(Color.RED);

五、使用书签、页眉页脚

我们可以在文档中插入书签、页眉和页脚,并进行更新:

// 插入书签
Bookmark bookmark = doc.getBookmarks().add("MyBookmark");   // 添加页眉
HeaderFooter header = doc.getFirstSection().getHeadersFooters().getHeaderFooter(HeaderFooterType.HEADER_PRIMARY);
header.addParagraph("Page header");// 更新页脚中的页码
doc.getSections().get_Item(0).getHeadersFooters().getFooter(HeaderFooterType.FOOTER_PRIMARY).getPageNumbers().setNumberFormat("Page {PAGE} of {NUMPAGES}");

六、文档元素与Word对应关系

Aspose.Words几乎包含了Word文档的全部元素,不同元素对应不同的类,我们通过这些类来操作文档。例如:

  • Document -> Word文档
// 创建空白文档
Document doc = new Document();// 添加内容
Paragraph para = doc.getFirstSection().addParagraph();
para.appendChild("Hello world!");// 保存文档
doc.save("D:\\test.docx");
  • Section -> Word文档中的节
// 读取文档
Document doc = new Document("D:\\test.docx");// 插入新节
Section newSection = doc.insertSection(doc.getSections().getCount());
newSection.getPageSetup().setOrientation(Orientation.LANDSCAPE);// 添加内容到新节中
Paragraph para = newSection.getBody().addParagraph();
para.appendChild("This is a new section.");// 保存更新
doc.save("D:\\test.docx");
  • Body -> Word文档主体内容
// 读取文档
Document doc = new Document("D:\\test.docx");// 获取文档主体部分
Body body = doc.getFirstSection().getBody();// 在文档末尾添加段落
Paragraph para = body.addParagraph();
para.appendChild("This is a new paragraph.");// 保存更新
doc.save("D:\\test.docx");
  • Paragraph -> Word中的段落
// 读取文档
Document doc = new Document("D:\\test.docx");// 获取文档主体部分
Body body = doc.getFirstSection().getBody();// 在文档末尾添加段落
Paragraph para = body.addParagraph();
para.appendChild("This is a new paragraph.");// 保存更新
doc.save("D:\\test.docx");
  • Table -> Word中的表格
// 创建新文档
Document doc = new Document();// 添加表格
Table table = doc.getFirstSection().getBody().addTable();
table.autoFit(AutoFitBehavior.AUTO_FIT_TO_CONTENTS);
for (int i = 0; i < 3; i++) {Row row = table.getRows().addRow();for (int j = 0; j < 3; j++) {Cell cell = row.getCells().add(String.format("Cell %d, %d", i+1, j+1));}
}// 保存文档
doc.save("D:\\test.docx");
  • Style -> Word中的样式
// 读取文档
Document doc = new Document("D:\\test.docx");// 创建新样式
Style style = doc.getStyles().add(StyleType.PARAGRAPH, "MyStyle");   // 设置样式属性
style.getFont().setBold(true);
style.getParagraphFormat().setAlignment(ParagraphAlignment.CENTER);// 应用样式
Paragraph para = doc.getFirstSection().getBody().addParagraph();
para.getParagraphFormat().setStyle(style);// 保存更新
doc.save("D:\\test.docx");
  • Bookmark -> Word中的书签
// 读取文档
Document doc = new Document("D:\\test.docx");// 创建新样式
Style style = doc.getStyles().add(StyleType.PARAGRAPH, "MyStyle");   // 设置样式属性
style.getFont().setBold(true);
style.getParagraphFormat().setAlignment(ParagraphAlignment.CENTER);// 应用样式
Paragraph para = doc.getFirstSection().getBody().addParagraph();
para.getParagraphFormat().setStyle(style);// 保存更新
doc.save("D:\\test.docx");
  • Image -> Word中的图片
// 读取文档
Document doc = new Document("D:\\test.docx");// 创建新样式
Style style = doc.getStyles().add(StyleType.PARAGRAPH, "MyStyle");   // 设置样式属性
style.getFont().setBold(true);
style.getParagraphFormat().setAlignment(ParagraphAlignment.CENTER);// 应用样式
Paragraph para = doc.getFirstSection().getBody().addParagraph();
para.getParagraphFormat().setStyle(style);// 保存更新
doc.save("D:\\test.docx");

【使用分享】一文掌握Aspose.Words for Java,实现Word文档的生成与操作相关推荐

  1. java aspose 加水印_使用Aspose.words for java去掉Word文档的水印(底图)

    不说话,直接上代码 /** * @CopyRright (c)2011: BrokenStone * @Project: WordWatermark * @File: RemoveWordWaterm ...

  2. Word处理控件Aspose.Words功能演示:用Java从Word文档中提取文本

    Aspose.Words For .NET是一种高级Word文档处理API,用于执行各种文档管理和操作任务.API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsof ...

  3. Word处理控件Aspose.Words功能演示:使用 Java 将 Word 文档转换为 Markdown

    大多数智能设备,如智能手机.平板电脑.笔记本电脑等,都支持EPUB格式来查看或阅读文档.它是电子书或电子出版物的常用格式.另一方面,MS Word 格式,如DOCX.DOC等,是数字世界中广泛使用的文 ...

  4. Word处理控件Aspose.Words功能演示:使用 Java 为 Word 文档添加水印

    为防止非法使用.定义所有权.显示文档状态等多种目的,在 Word 文档中添加水印.在本文中,您将学习如何使用 Java 为 Word 文档添加水印.文章将分别演示如何将文字和图片水印插入到Word文档 ...

  5. Word处理控件Aspose.Words功能演示:使用 Java 处理 Word 文档的原始版本或修订版本

    Aspose.Words是一种高级Word文档处理API,用于执行各种文档管理和操作任务.API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsoft Word. A ...

  6. Word处理控件Aspose.Words功能演示:在 Java 中将 Word 文档转换为 EPUB

    大多数智能设备,如智能手机.平板电脑.笔记本电脑等,都支持EPUB格式来查看或阅读文档.它是电子书或电子出版物的常用格式.另一方面,MS Word 格式,如DOCX.DOC等,是数字世界中广泛使用的文 ...

  7. Word处理控件Aspose.Words功能演示:使用 Java 将 Word 文档转换为 HTML

    为了将 Word 文档的内容嵌入到您的应用程序中,您可能需要执行转换.在这种情况下,最广泛选择的转换是 Word 到HTML或 Word 到图像.,Aspose API支持流行文件格式处理,并允许将各 ...

  8. Aspose.Java实现word转pdf,添加水印等操作

    Aspose.Java实现word转pdf,添加水印等操作 一. word转pdf 二. 文档插入水印 Aspose是一款商用版控件,支持各类文档操作,这里主要介绍如何在Springboot项目中使用 ...

  9. java实现Word文档转换PDF文档

    最近需要实现在java语言Word文档转成PDF文档的功能,做了一下调研,最后使用aspose-words实现了该功能. 注意,aspose-words 为商业软件,本文仅是使用方法的demo,使用的 ...

最新文章

  1. 如何创建自己的ESLint配置包
  2. 数百个CV实战项目与必备7本书5000页中英文CV书籍以及算法工程师必备资料免费送啦~...
  3. 离群?异常?新类?开集?分布外检测?一文搞懂其间异同!
  4. Java导出Excel或word jsp页面直接转的方式
  5. %matplotlib inline 是什么意思
  6. ie浏览器跨域报错问题;Access-Control-Allow-Headers 列表不存在请求表头 content-type;XMLHTTPRequest:网络错误 0x80070005,拒绝访问。
  7. VSCode 1.35 发布,新的图标,支持远程开发
  8. 基于JAVA+Swing+MYSQL的工资管理系统
  9. Chrome 开发者工具(DevTools)中所有快捷方式列表
  10. 关于期权的若干硬知识,知道这些就不那么担心了
  11. 【机械仿真】基于matlab GUI凸轮设计与仿真【含Matlab源码 153期】
  12. 1.2 几个经典博弈模型(囚徒的困境、赌胜博弈、产量决策的古诺模型)
  13. 相机模型坐标系关系及转换
  14. java毕业设计补课管理系统Mybatis+系统+数据库+调试部署
  15. .net分流抢票助手
  16. thinkphp ajax 跨域请求 Access-Control-Allow-Origin 完美解决
  17. 一款监控孩子手机的APP,家长有了这款软件绝对放心,再也不怕孩子偷偷玩游戏!
  18. ARM Linux异常处理之data abort(一)
  19. 交友项目【手机号登录注册功能】实现
  20. JS中数组使用的方法

热门文章

  1. vue实现机器人聊天
  2. node.js wechaty实现微信机器人聊天,定时发送消息
  3. Phaser.js开发-怪物吃糖果
  4. <1> ODOO15中关于MIS Builder的报表研究
  5. 花生壳实现内网穿透,获取公网IP?花生壳端口映射外网TCP测试
  6. Codeforces 1327 C. Game with Chips
  7. Ubuntu16.04安装charm-cryto总结及遇到问题记录
  8. 顶级游戏设计→构造游戏世界
  9. Linux(程序设计):66---简略版的线程池设计
  10. 如何通过个性化服务改善客户体验