2009-08-13 16 views
2

Ich muss eine Reihe von .docx-Dateien in einem Ordner sammeln und sie zu einem einzigen Dokument "verketten", das dem Benutzer angezeigt wird.Ein OpenXML-Dokument in ein anderes OpenXML-Dokument einbetten

Jetzt habe ich Brian Jones' article gelesen, aber während es vielversprechend klang, habe ich ein Problem festgestellt.

Wenn ich die Aktionen manuell mit Word 2007 durchführe, habe ich eine Kopie der docx-Datei im Ordner/embeddings. Wenn ich das Dokument öffne, wird mir der eingebettete Inhalt angezeigt.

Wenn ich jedoch dasselbe durch Code mache, lande ich mit einer Datei namens package.bin im Ordner/embeddings und wenn ich das Dokument öffne, werde ich mit dem alternativen Bild begrüßt, das mir sagt, dass ich doppelt klicken soll um das eingebettete Dokument zu aktivieren. Das wollte ich nicht.

Kann jemand klären, wie ich die Dokumente einbetten, so dass sie als .docx-Dateien anstelle von .bin angezeigt werden? Ich hoffe, dass dies auch das Problem der Doppelklick zum Aktivieren überwinden wird.

Vielen Dank im Voraus

+0

Seien Sie vorsichtig, wie Sie treten! http://news.bbc.co.uk/1/hi/technology/8197990.stm – joshcomley

+0

Ich werde damit umgehen, wie und wann ich auch habe ;-) – DilbertDave

Antwort

3

Ich stelle diese Frage auf den OpenXMLDeveloper forums und wurde in eine anderen article by Brian Jones gerichtet.

Während der Blog mich in die richtige Richtung wies, war es kein Wundermittel. Ich hatte Probleme mit der Formatierung, die durch Hinzufügen eines MatchSource-Elements zum AltChunk gelöst wurden.

MatchSource matchSrc = new MatchSource(); 
matchSrc.Val = DocumentFormat.OpenXml.Wordprocessing.BooleanValues.True; 
altChunk.AppendChild(matchSrc); 

ich auch erforderlich, um die Fußzeile aus den Dokumenten zu entfernen, zusammengeführt werden, wie sie in dem neuen Dokument repliziert wurden (was in zahlreichen Fußzeilen innerhalb der Haupt Fußzeile!). Jetzt habe ich nur die Fußzeile in der Vorlage für das Master-Dokument.

Hoffen, dass dies jemand anderen hilft, da es nicht zu viele Informationen gibt, gibt es den Moment.