gpt4 book ai didi

java - 使用 Apache POI 在 Word 文档中添加水印

转载 作者:行者123 更新时间:2023-11-30 02:16:24 25 4
gpt4 key购买 nike

我想使用Apache POI在word文档中添加文本水印.

我使用了 headerFooterPolicy.createWatermark("Watermark"); 但不显示对角灰色文本。

最佳答案

private XWPFParagraph getWatermarkParagraph(String text, int idx)到现在为止根本就没有完成。您可以等待它准备好,或者在创建默认值后使用低级对象对其进行操作。

所需的设置位于 CTShape .

示例:

import java.io.*;

import org.apache.poi.xwpf.usermodel.*;

import org.apache.poi.xwpf.model.XWPFHeaderFooterPolicy;

public class CreateWordHeaderFooterWatermark {

public static void main(String[] args) throws Exception {

XWPFDocument doc= new XWPFDocument();

// the body content
XWPFParagraph paragraph = doc.createParagraph();
XWPFRun run=paragraph.createRun();
run.setText("The Body:");

// create header-footer
XWPFHeaderFooterPolicy headerFooterPolicy = doc.getHeaderFooterPolicy();
if (headerFooterPolicy == null) headerFooterPolicy = doc.createHeaderFooterPolicy();

// create default Watermark - fill color black and not rotated
headerFooterPolicy.createWatermark("Watermark");

// get the default header
// Note: createWatermark also sets FIRST and EVEN headers
// but this code does not updating those other headers
XWPFHeader header = headerFooterPolicy.getHeader(XWPFHeaderFooterPolicy.DEFAULT);
paragraph = header.getParagraphArray(0);

// get com.microsoft.schemas.vml.CTShape where fill color and rotation is set
org.apache.xmlbeans.XmlObject[] xmlobjects = paragraph.getCTP().getRArray(0).getPictArray(0).selectChildren(
new javax.xml.namespace.QName("urn:schemas-microsoft-com:vml", "shape"));

if (xmlobjects.length > 0) {
com.microsoft.schemas.vml.CTShape ctshape = (com.microsoft.schemas.vml.CTShape)xmlobjects[0];
// set fill color
ctshape.setFillcolor("#d8d8d8");
// set rotation
ctshape.setStyle(ctshape.getStyle() + ";rotation:315");
//System.out.println(ctshape);
}

FileOutputStream out = new FileOutputStream("CreateWordHeaderFooterWatermark.docx");
doc.write(out);
out.close();
doc.close();

}
}

关于java - 使用 Apache POI 在 Word 文档中添加水印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48248276/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com