C# 将Word文档合并为一个文档,然后导出为PDF

C# 将Word文档合并为一个文档,然后导出为PDF,c#,.net,pdf,ms-word,office-interop,C#,.net,Pdf,Ms Word,Office Interop,我正在使用Microsoft.Office.Interop.Word将Word文档合并为一个文档,并最终将其导出为PDF格式。我需要一个文件中单个文档的精确集合,但合并会应用不需要的更改。每个文件都有自己的页面计数器文件1:1/3、2/3、3/3;document2:1/2、2/2,我希望合并后的文档也是这样。不幸的是它变成了1/5,2/5。。。有没有办法冻结文档中所有这些动态控制的数据以进行合并?我想我必须将单字文档转换为PDF格式,然后合并它们,我试图避免这种情况您可能需要在插入的文档之间插

我正在使用Microsoft.Office.Interop.Word将Word文档合并为一个文档,并最终将其导出为PDF格式。我需要一个文件中单个文档的精确集合,但合并会应用不需要的更改。每个文件都有自己的页面计数器文件1:1/3、2/3、3/3;document2:1/2、2/2,我希望合并后的文档也是这样。不幸的是它变成了1/5,2/5。。。有没有办法冻结文档中所有这些动态控制的数据以进行合并?我想我必须将单字文档转换为PDF格式,然后合并它们,我试图避免这种情况

您可能需要在插入的文档之间插入新的分节符。然后每个部分都可以在页码处有一个新的开始


我相信,不同的页码样式和值只能应用于章节级别。

基于您与Micky的讨论

使用SectionPages代替Numpage表示总页数,而使用SectionPages表示一个节中的总页数。您可以循环所有节的页脚范围以及这些范围内的字段,将NumPages字段的Field.Code属性更改为SectionPages


或者,您可以在导入之前锁定各个文档中的页面和NumPages字段,使它们保持静态。

另一种方法是从各个文档创建PDF,然后将它们合并在一起。这肯定会保留页面上显示的页面编号。由于速度问题,我试图避免这样做。现在我必须把50个字的文件转换成PDF,暂时保存并合并成一个。。。但我想这是超越其他建议的唯一方法,只有在这不正确的情况下,才使用这个回退程序。您可以尝试将十几个Word文件转储到Acrobat上;我认为在这种情况下它确实支持拖放。我已经添加了一个分节符来控制标题问题。因为第一个文档的标题会自动用于第二个文档。但是分节符对页面编号没有影响。@Barnabeck您仍然需要告诉word重新开始每个节的编号