Объединить 2x DOCX файлы в 1? - PullRequest
2 голосов
/ 22 января 2009

Мне нужно объединить целую кучу файлов docx программно. Представьте, что они пронумерованы от 1 до 10. Мне по сути нужен файл final.docx, который содержит все 10 документов. Если я могу как-то добавить второе к первому, то могу повторить это для третьего, затем для четвертого и т. Д.

Обратите внимание, что мне НЕ нужно перестраивать оглавление или что-то подобное. Каждый документ содержит статический контент. Однако в этих документах есть нижние колонтитулы, и их необходимо сохранить.

Желательно ответ на C # или MSBuild.

Благодарю вас.

Ответы [ 2 ]

2 голосов
/ 22 января 2009

Я подал заявку в C # на объединение файлов RTF в один документ, надеюсь, он будет работать и для файлов DOC и DOCX.

        Word._Application wordApp;
        Word._Document wordDoc;
        object outputFile = outputFileName;
        object missing = System.Type.Missing;
        object vk_false = false;
        object defaultTemplate = defaultWordDocumentTemplate;
        object pageBreak = Word.WdBreakType.wdPageBreak;
        string[] filesToMerge = new string[pageCounter];
        filestoDelete = new string[pageCounter];

        for (int i = 0; i < pageCounter; i++)
        {
            filesToMerge[i] = @"C:\temp\temp" + i.ToString() + ".rtf";
            filestoDelete[i] = @"C:\temp\temp" + i.ToString() + ".rtf";                
        }
        try
        {
            wordDoc = wordApp.Documents.Add(ref missing, ref missing, ref missing, ref missing);
        }
        catch(Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
        Word.Selection selection= wordApp.Selection;

        foreach (string file in filesToMerge)
        {
            selection.InsertFile(file,
                ref missing,
                ref missing,
                ref missing,
                ref missing);

            selection.InsertBreak(ref pageBreak);                                     
        }
        wordDoc.SaveAs(ref outputFile, ref missing, ref missing, ref missing, ref missing, ref missing,
               ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing,
               ref missing, ref missing);  

Надеюсь, это поможет!

1 голос
/ 09 декабря 2010
...