为有中文需求的客户提供多渠道中文技术支持.

Mon Jul 04, 2022 2:34 am

word文档怎么设置水印位置,不想位于文档正中间,想移动到中右

ning1244956271
 
Posts: 1
Joined: Mon Jul 04, 2022 2:23 am

Mon Jul 04, 2022 7:12 am

您好,

感谢您的咨询。

对于Word的水印,是无法按您的需求去调整位置的。这个即使您直接手动使用微软Word也是不提供这种功能的,因此也无法通过我们产品来进行调整。
但您可以使用在页眉中添加艺术字的方式来添加水印,通过设置艺术字的位置可以满足您的这个需求。以下是示例代码供您参考。
Code: Select all
        //加载示例文档
        Document doc = new Document();
        //doc.loadFromFile("Sample.docx");
        doc.addSection();
        //添加艺术字并设置大小
        ShapeObject shape = new ShapeObject(doc, ShapeType.Text_Plain_Text);
        shape.setWidth(60);
        shape.setHeight(20);
        //设置艺术字文本内容、位置及样式
        shape.setVerticalPosition(30);
        shape.setHorizontalPosition(20);
        shape.setRotation(0);
        shape.getWordArt().setFontFamily("宋体");
        shape.getWordArt().setText("内部使用");
        shape.setFillColor(Color.red);
        shape.setLineStyle(ShapeLineStyle.Single);
        shape.setStrokeColor(new Color(192, 192, 192, 100));
        shape.setStrokeWeight(1);

        Section section;
        HeaderFooter header;
        for (int n = 0; n < doc.getSections().getCount(); n++) {
            section = doc.getSections().get(n);
            //获取section的页眉
            header = section.getHeadersFooters().getHeader();
            Paragraph paragraph;

            if (header.getParagraphs().getCount() > 0) {
                //如果页眉有段落,取它第一个段落
                paragraph = header.getParagraphs().get(0);
            } else {
                //否则新增加一个段落到页眉
                paragraph = header.addParagraph();
            }
            float pageWidth=section.getPageSetup().getClientWidth();
            float pageHeight=section.getPageSetup().getClientHeight();

            //复制艺术字并设置其位置
            shape = (ShapeObject) shape.deepClone();
            //纵坐标=(页面高度-艺术字整体高度)/2
            shape.setVerticalPosition((pageHeight-20)/2);
            //横坐标=页面宽度-艺术字整体的宽度    上面构建艺术字时传入的宽度是60
            shape.setHorizontalPosition(pageWidth-60);
            paragraph.getChildObjects().add(shape);
        }
        //保存文档
        doc.saveToFile("result.docx", FileFormat.Docx_2013);
Sincerely,
Andy
E-iceblue support team
User avatar

Andy.Zhou
 
Posts: 483
Joined: Mon Mar 29, 2021 3:03 am

Return to 中文技术支持