概述
1. 通过FreeMarker构建Word
自行查找通过FreeMarker ftl构建生成word(通过xml进行word模板构建)
2. Word Docment Image Insert(page)
主要思路:通过DocmentBuilder获取到当前段落所处页数,并在换页处进行图片添加从而达到在不同页添加图片,insertImage时通过指定属性达到图片展示位置(是否悬浮文字上等)
// 1.构建Docment
Document doc = new Document(docInputStream)
DocumentBuilder builder = new DocumentBuilder(doc);
try{
// 2.构建页面布局
int pageCount = doc.getPageCount(); // 获取总页数
LayoutCollector layoutCollector = new LayoutCollector(doc);
doc.updatePageLayout();
// 3.通过段落进行遍历(NodeType中包含各种类型可通过官网API对照)
// https://apireference.aspose.com/words/java/com.aspose.words/NodeType
NodeCollection runs = doc.getChildNodes(NodeType.PARAGRAPH, true);
int tempPage = 0;
for (int i = 0; i < runs.getCount(); i++) {
Node r = runs.get(i);
// 4.找到当前段落所对应的页数
int numPage = layoutCollector.getStartPageIndex(r);
// 5.进行图片插入
if (numPage != tempPage) {
// 锁定到当前段落即实现页面变换
builder.moveTo(r);
// insertImage中参数含义自行查询
builder.insertImage(imgPath, RelativeHorizontalPosition.PAGE, 0, RelativeVerticalPosition.PAGE, 0, 100, 100, WrapType.NONE);
}
tempPage = numPage;
}
// 6.更新操作是将builder中修改数据更新到doc中(save方法中也会触发)
doc.updateFields();
//doc.save(outOs, saveOptions);
} catch (Exception e) {}
说明:如果在bulider中进行数据修改后,直接进行word转pdf,通过save时会丢失builder中修改的内容,此时需要将docment中数据进行更新!
最后
以上就是安详衬衫为你收集整理的java aspose对指定页指定位置进行图片/段落插入的全部内容,希望文章能够帮你解决java aspose对指定页指定位置进行图片/段落插入所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复