Word控件Spire.Doc 【页眉页脚】教程(9): 在 C#、VB.NET 中的 Word 文档之间复制页眉/页脚

Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库。在于帮助开发人员无需安装 Microsoft Word情况下,轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档。拥有近10年专业开发经验Spire系列办公文档开发工具,专注于创建、编辑、转换和打印Word/PDF/Excel等格式文件处理,小巧便捷。 

E-iceblue 功能类库Spire 系列文档处理组件均由中国本土团队研发,不依赖第三方软件,不受其他国家的技术或法律法规限制,同时适配国产操作系统如中科方德、中标麒麟等,兼容国产文档处理软件 WPS(如 .wps/.et/.dps 等格式

Spire.Doc for.NET 最新下载(767755948)icon-default.png?t=N2N8https://www.evget.com/product/3368/download

当您创建多个密切相关的 Word 文档时,您可能希望将一个文档的页眉或页脚用作其他文档的页眉或页脚。例如,您正在创建内部文档,并将公司徽标或名称或其他材料放在页眉中,您只需创建一次页眉并将页眉复制到其他地方。

在本文中,我将向您介绍一种简单高效的解决方案,从一个 Word 文档中复制整个页眉(包括文本和图形)并将其插入到另一个文档中。

源文件

详细步骤:

第 1 步:创建一个新的 Document 类实例并加载源文件。

Document doc1 = new Document();
doc1.LoadFromFile("test1.docx");

第 2 步:从源文档中获取标题部分。

HeaderFooter header = doc1.Sections[0].HeadersFooters.Header;

第 3 步:初始化一个新的 Document 实例并加载另一个要插入标题的文件。

Document doc2 = new Document("test2.docx");

第 4 步:调用DocuentObject.Clone()方法复制源文件头中的每个对象,然后调用DocumentObjectCollection.Add()方法将复制的对象插入到目标文件头中。

foreach (Section section in doc2.Sections)<font></font>
{<font></font>
    foreach (DocumentObject obj in header.ChildObjects)<font></font>
    {<font></font>
        section.HeadersFooters.Header.ChildObjects.Add(obj.Clone());<font></font>
    }<font></font>
}<font></font>

第 5 步:保存更改并启动文件。

doc2.SaveToFile("test2.docx", FileFormat.Docx2013);<font></font>
System.Diagnostics.Process.Start("test2.docx");<font></font>

目的地文件

完整代码

[C#]

Document doc1 = new Document();<font></font>
doc1.LoadFromFile("test1.docx");<font></font>
HeaderFooter header = doc1.Sections[0].HeadersFooters.Header;<font></font>
Document doc2 = new Document("test2.docx");<font></font>
foreach (Section section in doc2.Sections)<font></font>
{<font></font>
foreach (DocumentObject obj in header.ChildObjects)<font></font>
{<font></font>
section.HeadersFooters.Header.ChildObjects.Add(obj.Clone());<font></font>
}<font></font>
}<font></font>
doc2.SaveToFile("test2.docx", FileFormat.Docx2013);<font></font>
System.Diagnostics.Process.Start("test2.docx");<font></font>

[VB.NET]

Dim doc1 As New Document()<font></font>
doc1.LoadFromFile("test1.docx")<font></font>
Dim header As HeaderFooter = doc1.Sections(0).HeadersFooters.Header<font></font>
Dim doc2 As New Document("test2.docx")<font></font>
For Each section As Section In doc2.Sections<font></font>
For Each obj As DocumentObject In header.ChildObjects<font></font>
section.HeadersFooters.Header.ChildObjects.Add(obj.Clone())<font></font>
Next<font></font>
Next<font></font>
doc2.SaveToFile("test2.docx", FileFormat.Docx2013)<font></font>
System.Diagnostics.Process.Start("test2.docx")<font></font>

以上便如在 C#、VB.NET 中的 Word 文档之间复制页眉/页脚,如果您有其他问题也可以继续浏览本系列文章,获取相关教程,你还可以给我留言或者加入我们的官方技术交流群。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将一个Word文档页眉页脚复制到另一个文档,您可以使用Spire.Doc的`getHeadersFooters()`方法来获取源文档页眉页脚,然后将其复制到新文档。下面是一个示例代码,演示了如何实现这个功能: ```java import com.spire.doc.*; import com.spire.doc.documents.*; import com.spire.doc.fields.*; public class CopyHeaderFooter { public static void main(String[] args) { // 加载源文档 Document sourceDoc = new Document(); sourceDoc.loadFromFile("源文档.docx"); // 创建新文档 Document newDoc = new Document(); // 复制文档页眉页脚 for (Section sourceSection : sourceDoc.getSections()) { HeaderFooterCollection sourceHeadersFooters = sourceSection.getHeadersFooters(); for (HeaderFooter sourceHeaderFooter : sourceHeadersFooters) { // 复制页眉 if (sourceHeaderFooter.isHeader()) { HeaderFooter newHeader = newDoc.getSections().get(0).getHeadersFooters().getHeader(); if (newHeader == null) { newHeader = newDoc.getSections().get(0).getHeadersFooters().addHeader(); } copyContent(sourceHeaderFooter, newHeader); } // 复制页脚 if (sourceHeaderFooter.isFooter()) { HeaderFooter newFooter = newDoc.getSections().get(0).getHeadersFooters().getFooter(); if (newFooter == null) { newFooter = newDoc.getSections().get(0).getHeadersFooters().addFooter(); } copyContent(sourceHeaderFooter, newFooter); } } } // 保存新文档 newDoc.saveToFile("新文档.docx", FileFormat.Docx_2013); } // 复制内容 private static void copyContent(HeaderFooter source, HeaderFooter target) { target.getChildObjects().clear(); for (DocumentObject obj : source.getChildObjects()) { DocumentObject newObj = obj.deepClone(); target.getChildObjects().add(newObj); } } } ``` 请注意替换示例代码的`"源文档.docx"`为您实际的源文档路径。这段代码会加载源文档,然后遍历每个节页眉页脚。对于每个页眉页脚,它会复制其内容并将其添加到新文档的相应位置。 希望对您有所帮助!如果您有任何其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值