2010-03-17 8 views
5

Ich versuche, zwei docx-Dokumente in ein docx-Dokument mit OpenXML SDK 2.0 zusammenzuführen. Die Dokumente sollten zusammengeführt werden, ohne dass das Layout und die benutzerdefinierten Kopf- und Fußzeilen verloren gehen. Ich hoffe, ich kann dies mit AltChunk und einem Abschnitt Pause erreichen. Aber ich kann es nicht funktionieren.Dokumente zusammenführen

Ist es möglich, was ich versuche zu tun? Kann mir jemand einen Hinweis geben, wie ich das erreichen kann?

Antwort

1

Mit dem 'Open XML Productivity Tool' analysierte ich die Struktur eines docx-Dokuments und kam zu dem Schluss, dass das Zusammenführen von Dokumenten mit Stil, Kopf- und Fußzeilen, ... nicht mit Altchunk möglich ist. Sie können das Tool separat von der open xml sdk herunterladen.

Was ich jetzt mache, und was funktioniert, ist das Kopieren alles manuell in Dokument, sicherzustellen, dass alle Stil-Referenzen, Header-Referenzen, Fußnoten-Referenzen, ... erhalten bleiben. Das bedeutet, dass ich ihnen eine neue eindeutige ID gebe, bevor ich sie in das Dokument kopiere und alle Referenzen von der alten ID zur neuen ID ändere. Es gibt eine Menge Code, um dies zu tun, aber das oben erwähnte Tool hat wirklich geholfen.

Hinzufügen eines Abschnitts Pause ist auch ziemlich schwierig. Sie sollten wissen, dass der SectionProperties -Tag alle Eigenschaften des Abschnitts beschreibt und dass es einen SectionProperties -Tag unter dem Body -Tag geben kann, der die Eigenschaften des letzten Abschnitts beschreibt. Das Hinzufügen eines neuen Schnitts bedeutet also, das letzte SectionProperties -Tag in den letzten Absatz des Abschnitts zu kopieren und ein neues SectionProperties -Tag unter dem Body -Tag hinzuzufügen. Ich habe auch viele Informationen aus dem Produktivitätstool bekommen.

+0

Können Sie Code dafür schreiben :-) Einige einfach zu verstehen Beispiel:> – MadBoy

+0

Jelles Erfahrung spiegelt meine. Es ist keine leichte Aufgabe, und es erfordert viel mehr Code als Sie vielleicht denken. Es ist besonders schwierig, die Stile gerade zu halten, da Sie Kollisionen beider Id-Namen verhindern müssen. –

4

Die obige Antwort ist NICHT korrekt! Das ist GENAU, was AltChunk entwickelt wurde, und es funktioniert großartig!

HINWEIS: (. Offensichtlich die Datei gespeichert werden muss oder die Datei auf der Festplatte aktualisiert wird nicht), dass die Dokumente nicht in ein Dokument zusammengeführt werden, bis Word die Datei zum ersten Mal öffnet

See In diesem Blog erfahren Sie mehr darüber, wie Sie es richtig machen: https://blogs.msdn.com/b/ericwhite/archive/2008/10/27/how-to-use-altchunk-for-document-assembly.aspx?Redirected=true

ps Bei der Untersuchung von Open XML mit dem Produktivitätstool ist es meiner Meinung nach nur das offizielle Open XML-Add-On von Visual Studio zu installieren und die Office-Dokumente von Visual Studio zu öffnen, um sie zu untersuchen. Es ist sehr praktisch! :-)

+1

funktioniert auch für mich, obwohl im Gegensatz zu Word scheint LibreOffice die AltChunks zu ignorieren. – metalheart