2023-07-31 15:31 采纳率: 75%
浏览 22
已结题

用java 操作word 使其变成图片和文字对齐 (最好是操作页脚)

img

用java 操作word 使其变成图片和文字对齐 (最好是操作页脚)图片和文字都需要新插入进去word的

img

word中对齐的方法:

img

但是java怎么这样操作就不会了

问题跟这个同志的一样,但是他的解答看不懂,希望哥们回答的时候直接上代码和效果截图,感谢!
https://ask.csdn.net/questions/7762178

这是我自己的代码:

public R addSignature() throws Exception {

        Document doc = new Document("D:/sample.docx");


        //获取第一节
        Section sec = doc.getSections().get(0);

        //删除页脚
        sec.getHeadersFooters().getFooter().getChildObjects().clear();

        HeaderFooter footer = sec.getHeadersFooters().getFooter();
        Paragraph fpara= footer.addParagraph();
        fpara.appendText("试验:");
        fpara.getFormat().setHorizontalAlignment(HorizontalAlignment.Center);

        DocPicture pic =fpara.appendPicture("D:/图片1.png");
        pic.setVerticalAlignment(ShapeVerticalAlignment.Center);
        pic.setHorizontalAlignment(ShapeHorizontalAlignment.Center);
        doc.saveToFile("D:/sample.docx", FileFormat.Docx_2013);

        return R.ok();
    }

这是运行的结果

img

  • 写回答

10条回答 默认 最新

  • nuclear2011 2023-08-07 11:36
    关注

    你图上的文本对齐方式是专门针对中文版式的设置,感觉目前很少有类库支持这个。但是你可以用另一个替代方法,就是表格来实现类似效果。
    下面是实现代码和结果,如果有帮到你,希望能采纳:

    import com.spire.doc.*;
    import com.spire.doc.documents.*;
    import com.spire.doc.fields.TextRange;
    
    public class AddFooter {
        public static void main(String[] args) {
            //加载Word文档
            Document doc= new Document("test.docx");
            //获取文档第一个节
            Section sec = doc.getSections().get(0);
    
            //获取该节的页脚
            HeaderFooter footer = sec.getHeadersFooters().getFooter();
    
            //创建一个1行2列的表格
            Table table = footer.addTable();
            table.resetCells(1,2);
    
            //获取第一行
            TableRow row = table.getRows().get(0);
    
            //添加段落到第一个单元格
            Paragraph paragraph = row.getCells().get(0).addParagraph();
            //添加文本到段落并设置字体
            TextRange text = paragraph.appendText("试验");
            text.getCharacterFormat().setFontName("宋体");
            //设置文本水平对齐方式为右对齐
            paragraph.getFormat().setHorizontalAlignment(HorizontalAlignment.Right);
            //设置文本垂直对齐方式为居中对齐
            row.getCells().get(0).getCellFormat().setVerticalAlignment(VerticalAlignment.Middle);
    
            //添加图片到第二个单元格
            row.getCells().get(1).addParagraph().appendPicture("logo.png");
    
            //移除表格边框
            table.getTableFormat().getBorders().setBorderType(BorderStyle.None);
    
            //设置表格对齐方式为居中(即文字和图片显示在页脚中部)
            table.getTableFormat().setHorizontalAlignment(RowAlignment.Center);
    
            //自动调整表格宽度以适应内容
            table.autoFit(AutoFitBehaviorType.Auto_Fit_To_Contents);
    
            //保存文档
            doc.saveToFile("设置页脚.docx", FileFormat.Docx_2013);
            doc.close();
        }
    }
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(9条)

报告相同问题?

问题事件

  • 系统已结题 8月15日
  • 已采纳回答 8月7日
  • 修改了问题 7月31日
  • 修改了问题 7月31日
  • 展开全部

悬赏问题

  • ¥30 python密码表示
  • ¥15 Flask应用部署到阿里云服务器失败,无法访问网页,问题出在哪里?
  • ¥15 计算个体的IBS遗传距离
  • ¥15 有什么好的直流步进减速电机42的厂家推荐,保持力矩达到0.3N.M
  • ¥15 一道蓝桥杯的题,请问我错在哪里
  • ¥15 关于#android问题,xposed模块找不到so
  • ¥15 UE5.4.2创建C++项目成功,但是编译失败
  • ¥15 华为手机备份nas,airdisk,遇到的空间不足问题。求个详细的解决方案。
  • ¥20 Cknife无法使用
  • ¥15 这个结构体为什么会出错呢?