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