none
ayuda con word y openxml RRS feed

  • Pregunta

  • holas, mi problema el siguiente, nesesito meter un html en un archivo de word. esto lo logro usando open xml y aqui esta mi codigo:

     

     public
     void
     MergeSourceDocument(string
     sourceFile, string
     destinationFile) 
     {
      using
     (WordprocessingDocument myDoc = WordprocessingDocument.Open(destinationFile, true
    ))
      {
       MainDocumentPart mainPart = myDoc.MainDocumentPart;
    
       SdtBlock sdt = mainPart.Document.Descendants<SdtBlock>().Where(s => s.SdtProperties.GetFirstChild<SdtAlias>().Val.Value.Equals("pruebaHTML"
    )).First();
    
       string
     altChunkId = "AltChunkId1"
    ;
       
       AlternativeFormatImportPart chunk = mainPart.AddAlternativeFormatImportPart(AlternativeFormatImportPartType.WordprocessingML, altChunkId); 
       using
     (FileStream fileStream = File.Open(sourceFile, FileMode.Open))
        chunk.FeedData(fileStream);
    
       AltChunk altChunk = new
     AltChunk();
       altChunk.Id = altChunkId;
    
       OpenXmlElement parent = sdt.Parent;
       parent.InsertAfter(altChunk, sdt);
    			
       mainPart.Document.Save();
       
       myDoc.Close();
      } 
     }
    

     

    el problema es que cuando abro el word me da error y al descomprimirlo con win rar, veo que el "altChunk" me lo guarda con extencion .docx y si lo cambio a .html me anda bien.

    mi pregunta es la siguite:

    hay alguna manera de que por codigo pueda guardar el "altchunk" con extencion .html

     

    PD: estoy usando C#

    • Editado Enzo_ovi viernes, 17 de septiembre de 2010 22:03 linea de mas
    viernes, 17 de septiembre de 2010 21:15

Respuestas

  • al final era algo muy sencillo que no me di cuenta.

    remplaze esto:

    AlternativeFormatImportPart chunk = mainPart.AddAlternativeFormatImportPart(AlternativeFormatImportPartType.WordprocessingML, altChunkId); 

    por esto:

    AlternativeFormatImportPart chunk = mainPart.AddAlternativeFormatImportPart(AlternativeFormatImportPartType.HTML, altChunkId); 

     

    • Marcado como respuesta Enzo_ovi jueves, 21 de octubre de 2010 23:29
    jueves, 21 de octubre de 2010 23:28

Todas las respuestas

  • Hola:

    ¿Lo has resuelto? ¿Necesitas ayuda?

    Un saludo


    http://geeks.ms/blogs/lruiz - MADNUG Member - Spenta Consulting .: MCP -MCTS :.
    lunes, 4 de octubre de 2010 9:15
    Moderador
  • al final era algo muy sencillo que no me di cuenta.

    remplaze esto:

    AlternativeFormatImportPart chunk = mainPart.AddAlternativeFormatImportPart(AlternativeFormatImportPartType.WordprocessingML, altChunkId); 

    por esto:

    AlternativeFormatImportPart chunk = mainPart.AddAlternativeFormatImportPart(AlternativeFormatImportPartType.HTML, altChunkId); 

     

    • Marcado como respuesta Enzo_ovi jueves, 21 de octubre de 2010 23:29
    jueves, 21 de octubre de 2010 23:28