aspose-words官网API:https://reference.aspose.com/words/zh/java/com.aspose.words/
com.aspose.words
pom依赖
<!-- 依赖包版本 -->
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-words</artifactId>
<version>19.5</version>
<classifier>jdk17</classifier>
</dependency>
com.aspose.words 包提供了无需使用 Microsoft Word 即可生成、转换、修改、呈现和打印 Microsoft Word 文档的类。
命名空间中的主要类是:
- Document是表示 Microsoft Word 文档的对象模型的主要类。
- DocumentBuilder提供了一种将内容和格式插入文档的简单方法。
- Node是文档中所有节点的基类。
- CompositeNode是可以包含其他节点的文档的所有节点的基类,例如Paragraph, Section和Table和 。
DocumentBuilder
DocumentBuilder
用于在文档中构建和编辑内容。它提供了一系列方法和属性,能够创建和修改各种元素,如段落、表格、标题、水印等。
- 插入文本:使用 insertText 方法在当前位置插入文本。
- 插入换行符和段落:使用 insertBreak 和insertParagraph 方法插入换行符和段落。
- 创建表格:使用 startTable、insertCell 和 endTable方法创建和填充表格。
- 处理样式:使用 getParagraphFormat 和 getFont 方法获取和设置段落和字体样式。
RUN
Run
是一个表示 Word 文档中文本的最小单元的对象。一个 Run
对象代表一个文本范围,其具有相同的格式和样式。
public static void watermark(String inputPath, String outPath, String fileName) throws Exception {
int num = 1;
Document doc = new Document(inputPath);
DocumentBuilder builder = new DocumentBuilder(doc);
NodeCollection runs = doc.getChildNodes(NodeType.RUN, true);
for (Run run : (Iterable<Run>) runs) {
String text = run.getText();
System.out.println(num + "-文本内容: " + text);
num++;
}
}
添加水印示例
/**
* World转PDF时添加水印
* @param inputPath: 文档路径,"D:\\记录.docx"
* @param outPath: 保存路径,"D:"
* @param fileName:文件名称,示例文档
* */
public static void waterMark(String inputPath, String outPath, String fileName) throws Exception {
Document doc = new Document(inputPath);
DocumentBuilder builder = new DocumentBuilder(doc); //创建构建和编辑文本对象
Shape watermark = new Shape(doc, ShapeType.TEXT_PLAIN_TEXT); //创建水印节点元素(TEXT_PLAIN_TEXT)
watermark.setRelativeHorizontalPosition(RelativeHorizontalPosition.PAGE); //参照页面位置水平
watermark.setRelativeVerticalPosition(RelativeVerticalPosition.PAGE); //参照页面位置垂直
watermark.setWidth(300); //宽度
watermark.setHeight(100); //长度
watermark.setHorizontalAlignment(HorizontalAlignment.CENTER); //水平居中
watermark.setVerticalAlignment(VerticalAlignment.CENTER); //垂直居中
watermark.setRotation(-40); //逆时针旋转40度
watermark.getFill().setColor(new Color(220, 220, 220)); //设置字体填充颜色
watermark.setStrokeColor(new Color(35, 56, 132, 35)); //设置字体边框颜色
watermark.getTextPath().setText("Watermark Text"); //水印内容
watermark.getTextPath().setFontFamily("Arial"); //字体类型
watermark.setBehindText(true); //设置水印置于文本的下层
builder.moveToHeaderFooter(HeaderFooterType.HEADER_PRIMARY); //移到到页眉位置
builder.insertNode(watermark); //插入水印节点
// 保存为PDF文档
doc.save(outPath + "\\" + fileName + ".pdf"); //保存为pdf
}
World文件追加
/**
* word文件追加
*
* @param sourceDoc:文档全路径地址,D:\原文档.docx
* @param appendDoc:追加的文档全路径,D:\追加文档.docx
* @param savePath:保存的路径,D:
* */
public static void appendDocuments(String sourceDoc, String appendDoc, String savePath) throws Exception {
Document sourceDocument = new Document(sourceDoc);
Document appendDocument = new Document(appendDoc);
sourceDocument.appendDocument(appendDocument, ImportFormatMode.KEEP_DIFFERENT_STYLES);
sourceDocument.save(savePath + "\\" + "appendDocument.docx");
}
com.aspose.pdf
包含了 Aspose.PDF 提供的各种类和方法,用于操作 PDF 文件的创建、编辑、转换等功能。
pom依赖
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-pdf</artifactId>
<version>18.9</version>
</dependency>
PDF转World
/**
* pdf转为docx
*
* @param inputPath: 文档路径,"D:\\记录.docx"
* @param outPath: 保存路径,"D:\\"
* @param fileName:文件名称,示例文档
*/
public static void savingToDOCX(String inputPath, String outPath, String fileName) throws Exception {
// 设置Aspose.PDF的许可证
License license = new License();
license.setLicense("src/main/resources/license.xml");
// 加载源PDF文件
Document doc = new Document(inputPath);
// 实例化文档SaveOptions实例
DocSaveOptions saveOptions = new DocSaveOptions();
// 将输出文件格式设置为DOCX
saveOptions.setFormat(DocSaveOptions.DocFormat.DocX);
// Save resultant DOCX file
doc.save(outPath + fileName + ".docx", saveOptions);
}