2009-12-04 12 views

risposta

7

Anoop,

Lei ha detto che si è in grado di creat il documento con OpenXmlSdk. Con questa ipotesi, è possibile utilizzare il seguente codice per creare il controllo del contenuto da aggiungere all'elemento Wordprocessing.Body del documento.

//praragraph to be added to the rich text content control 
Run run = new Run(new Text("Insert any text Here") { Space = StaticTextConstants.Preserve }); 
Paragraph paragraph = new Paragraph(run); 

SdtProperties sdtPr = new SdtProperties(
     new Alias { Val = "MyContentCotrol" }, 
     new Tag { Val = "_myContentControl" }); 
SdtContentBlock sdtCBlock = new SdtContentBlock(paragraph); 
SdtBlock sdtBlock = new SdtBlock(sdtPr, sdtCBlock); 

//add this content control to the body of the word document 
WordprocessingDocument wDoc = WordprocessingDocument.Open(path, true); //path is where your word 2007 file is 
Body mBody = wDoc.MainDocumentPart.Document.Body; 
mBody.AppendChild(sdtBlock); 

wDoc.MainDocumentPart.Document.Save(); 
wDoc.Dispose(); 

Spero che questo risponda a una parte della tua domanda. Non ho capito cosa stai dicendo con "Mappalo in XML". Intendevi dire che vuoi creare CustomXmlBlock e aggiungere il ContentControl ad esso?

+0

Grazie per la risposta !! Anche se ho già un bell'articolo in MSDN che spiega anche la mappatura XML ... http://msdn.microsoft.com/en-us/library/dd469465.aspx – Anoop

+1

In OpenXML SDK 2, Alias ​​è ora SdtAlias. –

3

Dai un'occhiata a Word Content Control Toolkit su www.codeplex.com.

Ecco una breve spiegazione su come eseguire ciò che si sta tentando.

  1. È necessario accedere alla scheda sviluppatore sulla barra multifunzione di Word. Per farlo funzionare, fai clic su Office (Round thingy) nell'angolo in alto a sinistra e seleziona Opzioni di Word nella parte inferiore del menu. Nella prima pagina delle opzioni c'è una casella di controllo per mostrare la barra degli strumenti dello sviluppatore.

  2. Utilizzare la barra degli strumenti di sviluppo per aggiungere i controlli del contenuto che si desidera sulla pagina. Fare clic sul pulsante Proprietà nella sezione Controlli contenuti della barra di sviluppo e impostare il nome e le proprietà dei tag (io rimango a denominare i campi nome e tag con lo stesso nome).

  3. Salvare e chiudere il documento word.

  4. Aprire il toolkit di controllo del contenuto e quindi aprire il documento con il toolkit. Usa il dolore della mano sinistra per creare alcuni xml personalizzati da collegare ai tuoi controlli.

  5. Ora utilizzare la vista di associazione per trascinare e rilasciare i mapping tra il proprio xml personalizzato e i controlli personalizzati visualizzati nel pannello destro del toolkit.

  6. È possibile utilizzare openxml sdk 1.0 o 2.0 (sempre in ctp) per aprire il documento word nel codice e accedere al file xml personalizzato contenuto come parte del documento word.

Se si desidera avere un'idea di come il documento di Word appare come xml. Fai una copia del tuo documento word e poi rinominalo per dire "a.zip". Fare doppio clic sul file zip e quindi navigare nella struttura delle cartelle. Il contenuto principale del documento word è contenuto nella cartella word in un file chiamato "document.xml". La parte personalizzata xml del documento è contenuta nella cartella customXml e generalmente si trova nel file "item1.xml".

Spero che questa breve spiegazione ti renda attivo e funzionante.

+0

Desidero aggiungere il controllo del contenuto a livello di codice utilizzando open xml sdk .... – Anoop