OpenXmlPowerTools DocumentBuilder 在单独的页面上合并文档

2023-11-30

I am trying to merge 4 word documents and force content of each document starts at new page. But instead of appending text from each document to a separate page, it adds text from all docs to one page. Like this:enter image description here

我该如何修复它? 这是代码:

 public class HomeController : Controller
{ 
    public void DocMerger()
    {
        var source1 = Server.MapPath(Url.Content("~/App_Data/1.docx")); //source 1
        var source2 = Server.MapPath(Url.Content("~/App_Data/2.docx")); //source 2
        var source3 = Server.MapPath(Url.Content("~/App_Data/3.docx")); //source 3
        var source4 = Server.MapPath(Url.Content("~/App_Data/4.docx")); //source 4
        var merged =  Server.MapPath(Url.Content("~/App_Data/merged.docx")); //merged

        var f1 = new FileInfo(source1);
        var f2 = new FileInfo(source2);
        var f3 = new FileInfo(source3);
        var f4 = new FileInfo(source4);

        //Use DocumentBuilder and merge the files
        var sources = new List<OpenXmlPowerTools.Source>()
        {
            new Source(new WmlDocument(f1.FullName),false),
              new Source(new WmlDocument(f2.FullName),false),
                new Source(new WmlDocument(f3.FullName),false),
                  new Source(new WmlDocument(f4.FullName),false)
        };
        var mergedDocument = DocumentBuilder.BuildDocument(sources);
        mergedDocument.SaveAs(merged); //save merged data as merged.docx

    }

}

这是您用于“Source”的构造函数:

public Source(WordprocessingDocument source, bool keepSections)

然后你只需将 keepSections 值的 false 更改为 true 即可:

var sources = new List<OpenXmlPowerTools.Source>()
    {
        new Source(new WmlDocument(f1.FullName),true),
        new Source(new WmlDocument(f2.FullName),true),
        new Source(new WmlDocument(f3.FullName),true),
        new Source(new WmlDocument(f4.FullName),true)
    };
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OpenXmlPowerTools DocumentBuilder 在单独的页面上合并文档 的相关文章

随机推荐

  • 在char数组中间插入字符

    我有一个填充了一些字符的字符数组 假设我的字符数组中有 HelloWorld 不是字符串 占用索引0到9 我想做的是在数组中间插入一个字符 然后将其余字符推到一边 为要插入的新字符腾出空间 因此 我可以使 char 数组中包含 Hello
  • 理解和实现 R 中分位数函数的数值积分

    我需要使用 R 计算下面的积分 我设法在 R 中使用分位数回归完成 q theta x 函数 包 quantreg matrix structure c 0 01 0 02 0 03 0 04 0 05 0 06 0 07 0 08 0 0
  • cakePHP 文件下载未找到或不可读

    我现在已经挣扎了一个小时试图解决这个问题 我用它来下载文件app uploads 目录 它说目录未找到或不可读 但我检查了它 它也存在使用的文件 file File filename 我想知道我在这里缺少什么 file this gt Fi
  • 在executeBatch()之后使用CallableStatement检索ResultSet

    我需要多次调用存储过程并使用executeBatch 为了这 每次调用都应返回包含结果的表 但我无法访问此结果 接下来的代码工作正常 callableStatement setString 1 foo callableStatement s
  • 重新设计后如何拒绝来自 iTunes Connect 的二进制文件 (12/09/2014)?

    我需要拒绝我的二进制文件 以便重新上传 这一直是 iTunes connect 上的一个隐藏选项 现在重新设计了 我到处找都找不到 根据苹果自己的文档 从审核中删除您的版本 打开应用程序的 应用程序详细信息 页面 如中所述打开应用程序的 应
  • 如果安装了3.5,还需要.net Framework 2.0吗?

    我想知道如果安装了 net Framework 3 5 运行 net 2 0应用程序是否仍然需要 net Framework 2 0 谢谢 Net 3 5 实际上是 Net 2 0 加上一些额外功能 除非 Net 2 0 也存在 否则无法安
  • re.findall 表现得很奇怪

    源字符串是 Python 3 4 3 s r abc123d hello 3 1415926 this is my book 这是我的模式 pattern r 0 9 0 9 0 9 然而 re search可以给我正确的结果 m re s
  • 如何防止用户在 Ionic/Cordova 中截屏?

    是否可以阻止用户在使用 Ionic Cordova 开发的 Android 应用程序中截取屏幕截图 如果可以的话 怎样做 我在 Ionic 论坛上提问 但没有得到答案 是的 您可以使用插件来做到这一点 使用这里的一个 http blog d
  • 是否有使用 @Version 的可配置替代方案?

    我正在放置一个带注释的字段 Version在我所有的 JPA 域类中 但这似乎只是额外的样板 有没有办法通过配置来解决这个问题 TIA Ole 据 JPA 规范告诉我们 您无法更改 Version通过 配置 进行注释 你要么使用 Versi
  • 异步回发后如何保持整个页面滚动位置

    我正在使用 asp net 4 0 iis 7 5 microsoft Visual Studio 2010 我想要的是当异步回发发生时 更新面板 保持整个页面 浏览器 滚动位置 不是 div 或面板 我怎样才能做到这一点 实际上我有一个函
  • 动态添加到 TableLayoutPanel 的行显示在不同的行位置

    我正在尝试通过单击按钮将 TextBox 动态添加到 TableLayoutPanel 中 通过单击鼠标选择行 选择行后 单击按钮将在所选行号上插入文本框 Problem是正确之后显示在不同选定的行上使用 TextBox 3 或 4 次 进
  • 如何更改 ScrollBar 的宽度?

    我想更改 TFrame 的 ScrollingBar 宽度 我知道我可以通过以下方式更改系统中的所有 ScrollingBar SystemParametersInfo SPI SETNONCLIENTMETRICS 但是我该如何为特定的
  • Haskell 列表错误的部分和

    我需要在 Haskell 中编写一个函数 对列表的元素求和 直到某些特定元素存储在另一个列表中 例如partial add 1 2 3 4 5 6 2 5 0应该返回 3 12 6 我已经达到了这样的程度 partial add count
  • 删除数组中连续出现的重复项

    有什么方法可以从下面的数组中删除连续的重复项 同时只保留第一个重复项 该数组如下所示 a array 1 gt go 2 gt stop 3 gt stop 4 gt stop 5 gt stop 6 gt go 7 gt go 8 gt
  • 如何在 Mac OS cocoa 中获取已安装 USB 设备的设备 ID、供应商 ID 和产品 ID

    我正在尝试编写一个 Cocoa 程序来检测连接到 Mac OS 的 iPod 我正在监听 NSWorkspaceDidMountNotification 和 NSWorkspaceDidUnmountNotification 以获取 USB
  • JObject.Parse 与 JsonConvert.DeserializeObject

    JsonConvert DeserializeObject 和 JObject Parse 有什么区别 据我所知 两者都采用字符串并且都在 Json NET 库中 什么样的情况会让一种情况比另一种更方便 或者主要只是偏好 作为参考 下面是我
  • Azure API 管理:带有后端 API 的 Oauth2

    我有一个后端 API 想要使用 Azure API 管理进行代理 该后端 API 要求我提供 Bearer Oauth2 令牌 我想使用 Azure APIM 为我处理 Oauth2 流 并且我想公开一个非常简单的 API 供客户端应用程序
  • 如何在我的多面标签之一中包含希腊符号?

    我正在尝试使用 ggplot2 v 2 2 2 1 创建一个绘图facet wrap 并且我只需要在一个方面标签中包含一个希腊符号 共五个 我尝试使用 Stack Overflow 上发布的代码 R 分面网格中分面标签的 R 希腊字母和普通
  • OCaml 会将多参数函数转换为柯里化函数还是反之亦然?

    当我学习 OCaml 基础知识时 我被告知 OCaml 中的每个函数实际上都是一个只有一个参数的函数 多参数函数实际上是一个接受一个参数并返回一个函数 该函数接受下一个参数并返回 这是柯里化 我明白了 所以我的问题是 case 1 if I
  • OpenXmlPowerTools DocumentBuilder 在单独的页面上合并文档

    I am trying to merge 4 word documents and force content of each document starts at new page But instead of appending tex