当前位置 博文首页 > E-iceblue:Java 在Word中添加多行图片水印

    E-iceblue:Java 在Word中添加多行图片水印

    作者:E-iceblue 时间:2021-02-09 14:27

    Word中设置水印效果时,不论是文本水印或者是图片水印都只能添加单个文字或者图片到Word页面,效果比较单一,本文通过Java代码示例介绍如何在页面中添加多行图片水印效果,即水印效果以多个图片平铺到页面。(添加多行文字水印效果,可以查看这篇文章中的方法)

    思路及方法:获取Word页眉,添加图片到页眉段落,并复制图片。

    程序环境:使用spire.doc.jar,版本:3.9.0

    Java代码:

    import com.spire.doc.*;
    import com.spire.doc.documents.Paragraph;
    import com.spire.doc.documents.TextWrappingStyle;
    import com.spire.doc.fields.DocPicture;
    
    public class ImageWatermark {
        public static void main(String[] args) {
            //加载Word文档
            Document doc=new Document();
            doc.loadFromFile("input.docx");
    
            //加载图片
            DocPicture picture = new DocPicture(doc);
            picture.loadImage("logo.png");
            picture.setTextWrappingStyle(TextWrappingStyle.Behind);//设置图片环绕方式
    
            //遍历所有section
            for (int n = 0; n < doc.getSections().getCount(); n++) {
                Section section = doc.getSections().get(n);
    
                //获取section的页眉
                HeaderFooter header = section.getHeadersFooters().getHeader();
    
                Paragraph paragrapg1;
                //获取或添加段落
                if(header.getParagraphs().getCount()>0)
                {
                    paragrapg1 = header.getParagraphs().get(0);
                }
                else
                    {
                        paragrapg1 = header.addParagraph();
                    }
    
                //复制图片,并添加图片到段落
                for (int p = 0; p < 4; p++) {
                    for (int q = 0; q < 3; q++) {
                        picture = (DocPicture)picture.deepClone();
                        picture.setVerticalPosition(50 + 150 * p);
                        picture.setHorizontalPosition(10 + 140 * q);
                        paragrapg1.getChildObjects().add(picture);
                    }
                }
            }
    
            //保存文档
            doc.saveToFile("output.docx", FileFormat.Docx_2013);
            doc.dispose();
        }
    }

     

    bk
    下一篇:没有了