Ajouter de multiples fichiers DOCX ensemble
J'ai besoin d'utiliser le C# par programmation pour ajouter plusieurs préexistante docx
des fichiers en un seul, long docx
de fichiers - y compris les majorations comme des balles et des images. L'en-tête et pied de page informations seront supprimés, de sorte que ceux ne sera pas causer de problèmes.
Je peux trouver beaucoup d'informations sur la manipulation d'un individu docx
fichier avec .NET Framework 3, mais rien de facile ou évident comment vous allez fusionner des fichiers. Il y a aussi un programme tiers (Acronis.Des mots) qui va le faire, mais c'est trop cher.
Mise à jour:
Automatiser à travers la Parole a été suggéré, mais mon code va être en cours d'exécution sur ASP.NET sur un serveur web IIS, afin de sortir de Parole n'est pas une option pour moi. Désolé de ne pas mentionner que, dans la première place.
Vous devez vous connecter pour publier un commentaire.
En dépit de toutes les bonnes suggestions et des solutions présentées, j'ai développé une solution de remplacement. À mon avis, vous devriez éviter d'utiliser des Mot le serveur d'applications. J'ai donc travaillé avec OpenXML, mais il ne fonctionne pas avec AltChunk. J'ai ajouté du texte à corps d'origine, j'ai reçu une Liste de byte[] au lieu d'une Liste de noms de fichiers, mais vous pouvez facilement changer le code à vos besoins.
J'espère que cela vous aide.
newBody.Add(XElement.Parse(new Paragraph(new Run(new Break { Type = BreakValues.Page })).OuterXml));
Vous n'avez pas besoin d'utiliser l'automatisation. Les fichiers DOCX sont basés sur les Formats OpenXML. Ils sont juste des fichiers zip avec un tas de XML binaire et de pièces (pensez à des fichiers) à l'intérieur. Vous pouvez les ouvrir avec l'Emballage (API Système.IO.L'emballage en WindowsBase.dll) et de les manipuler avec les classes XML dans le Cadre.
Découvrez OpenXMLDeveloper.org pour plus de détails.
C'est un peu tard pour la question d'origine et un peu a changer, mais pensé que je voudrais partager la façon dont j'ai écrit mon fusion de la logique. Cela rend l'utilisation de la Open XML Outils électriques
Actuellement, cela fonctionne très bien dans notre application. J'ai changé un peu le code, parce que mes exigences, c'est que chaque document qui doit être traitée en premier. Alors, quelle est transmis est un DTO objet avec le modèle de tableau d'octets et les différentes valeurs qui doivent être remplacés. Voici comment mon code ressemble. Qui prend le code un peu plus loin.
J'ai écrit une petite application de test il y a un moment pour ce faire. Mon test app travaillé avec des documents Word 2003 (.doc) pas .docx, mais j'imagine que le processus est le même - je pense que tout ce que vous avez à modifier est d'utiliser une version plus récente de l'Assembly Interop Primaire. Ce code serait un peu plus propre avec le nouveau C# 4.0 caractéristiques...
Vous souhaitez utiliser AltChunks et OpenXml SDK 1.0 (au minimum, 2.0 si vous le pouvez). Découvrez Eric Blanc du blog pour plus de détails et juste comme une grande ressource!. Voici un exemple de code qui devrait vous obtenir a commencé, si ce n'est le travail immédiatement.
Quitter son complexe de sorte que le code est en dehors de la portée d'un post sur le forum, je serais de la rédaction de votre Application pour vous, mais pour résumer.
J'avais fait une application en C# pour fusionner des fichiers RTF dans un doc,Iam, plein d'espoir, il doit travailler pour la DOC et DOCX fichiers.
Espérons que cette aide!