c#用NPOI2.1在docx页眉中增加图片

c#用NPOI2.1在docx页眉中增加图片,第1张

using System.IO

2 using NPOI.XWPF.UserModel

代码:

 1         XWPFDocument doc = new XWPFDocument()      //创建新的word文档

 2         

 3         XWPFParagraph p1 = doc.CreateParagraph()   //向新文档中添加段落

 4         p1.SetAlignment(ParagraphAlignment.CENTER) //段落对其方式为居中

 5 

 6         XWPFRun r1 = p1.CreateRun()                //向该段落中添加文字

 7         r1.SetText("测试段落一")

 8 

 9         XWPFParagraph p2 = doc.CreateParagraph()

10         p2.SetAlignment(ParagraphAlignment.LEFT)

11 

12         XWPFRun r2 = p2.CreateRun()

13         r2.SetText("测试段落二")

14 

15 

16         FileStream sw = File.Create("cutput.docx") //...

17         doc.Write(sw)                              //...

18         sw.Close()                                 //在服务端生成文件

19 

20         FileInfo file = new FileInfo("cutput.docx")//文件保存路径及名称  

21                                                     //注意: 文件保存的父文件夹需添加Everyone用户,并给予其完全控制权限

22         Response.Clear()

23         Response.ClearHeaders()

24         Response.Buffer = false

25         Response.ContentType = "application/octet-stream"

26         Response.AppendHeader("Content-Disposition", "attachmentfilename=" 

27             + HttpUtility.UrlEncode("output.docx", System.Text.Encoding.UTF8))

28         Response.AppendHeader("Content-Length", file.Length.ToString())

29         Response.WriteFile(file.FullName)

30         Response.Flush()                           //以上将生成的word文件发送至用户浏览器

31 

32         File.Delete("cutput.docx")                 //清除服务端生成的word文件

(19条消息) 使用POI读写word docx文件 wangxintong_1992的博客-CSDN博客 poi 写入word

POI *** 作word模板并生成新的word - (jianshu.com)

POI在读写 word docx 文件时是通过 XWPF 模块来进行的,其核心是XWPFDocument。一个XWPFDocument代表一个docx文档,其可以用来读docx文档,也可以用来写docx文档。XWPFDocument中主要包含下面这几种对象:

XWPFDocument:代表一个docx文档

XWPFParagraph:代表一个段落。

XWPFRun:代表具有相同属性的一段文本。

XWPFTable:代表一个表格。

XWPFTableRow:表格的一行。

XWPFTableCell:表格对应的一个单元格。

如有错误,欢迎指正

国内有个免费的jar(Free Spire.Doc for Java),可用来合并Word文档,分两种合并方法:1.合并的内容新起一页;2.合并的内容承接上文段落。

1.新起一页合并

import com.spire.doc.Document

import com.spire.doc.FileFormat

public class MergeWordDocument {

    public static void main(String[] args){

        //获取第一个文档的路径

        String filePath1 = "merge1.docx"

        //获取第二个文档的路径

        String filePath2 = "merge2.docx"

        //加载第一个文档

        Document document = new Document(filePath1)

        //使用insertTextFromFile方法将第二个文档的内容插入到第一个文档

        document.insertTextFromFile(filePath2, FileFormat.Docx_2013)

        //保存文档

        document.saveToFile("Output.docx", FileFormat.Docx_2013)

    }

}

2.承接上文段落合并

import com.spire.doc.Document

import com.spire.doc.DocumentObject

import com.spire.doc.FileFormat

import com.spire.doc.Section

public class MergeWordDocument {

    public static void main(String[] args){

        //获取第一个文档的路径

        String filePath1 = "merge1.docx"

        //获取第二个文档的路径

        String filePath2 = "merge2.docx"

        //加载第一个文档

        Document document1 = new Document(filePath1)

        //加载第二个文档

        Document document2 = new Document(filePath2)

        //获取第一个文档的最后一个section

        Section lastSection = document1.getLastSection()

        //将第二个文档的段落作为新的段落添加到第一个文档的最后一个section

        for (Section section:(Iterable <Section>)document2.getSections()) {

            for (DocumentObject obj:(Iterable <DocumentObject>)section.getBody().getChildObjects()

            ) {

                lastSection.getBody().getChildObjects().add(obj.deepClone())

            }

        }

        //保存文档

        document1.saveToFile("Output.docx", FileFormat.Docx_2013)

    }

}

可参考原文。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/7839683.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-10
下一篇 2023-04-10

发表评论

登录后才能评论

评论列表(0条)

保存