我是靠谱客的博主 安详衬衫,最近开发中收集的这篇文章主要介绍java aspose对指定页指定位置进行图片/段落插入,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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对指定页指定位置进行图片/段落插入所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(33)

评论列表共有 0 条评论

立即
投稿
返回
顶部