2017-09-06 10 views
0

텍스트 파일에 텍스트를 넣으려고하는데 이제는 customxmlparts로 워드 파일을 채우는 응용 프로그램을 만들었지 만 HTML이 있고 그 스타일을 보여주고 싶습니다. 리치 텍스트 형식으로 변환하려고했지만 단어 파일에 붙여 넣기 만하면됩니다.HTML을 docx 파일에 삽입하십시오.

var taskId = Guid.NewGuid(); 
var tempFilePath = $"{Path.GetTempPath()}/{taskId}"; 

using (var templateStream = new FileStream($"{tempFilePath}.docx", FileMode.CreateNew)) 
{ 
    templateStream.Write(template, 0, template.Length); 
    // 1. Fill template. 
    using (WordprocessingDocument doc = WordprocessingDocument.Open(templateStream, true)) 
    { 
     MainDocumentPart mainDocument = doc.MainDocumentPart; 

     if (mainDocument.CustomXmlParts != null) 
     { 
      mainDocument.DeleteParts<CustomXmlPart>(mainDocument.CustomXmlParts); 
     } 
     CustomXmlPart cxp = mainDocument.AddCustomXmlPart(CustomXmlPartType.CustomXml); 
     foreach (var line in data.Lines) 
     { 
      if (line.MoreInfo != null && line.MoreInfo != " ") { 

      } 
     } 
     var xmlData = ObjectToXml(data); 

     using (var stream = GenerateStreamFromString(tempFilePath, xmlData)) 
     { 
      cxp.FeedData(stream); 
     } 

     mainDocument.Document.Save(); 
    }    
} 
+0

또는 어떤 방법 \ u2029 \ n (공간을 만드는)/n을 나던 아무것도하지 마라. –

답변

0

당신은 단지 DOCX 필드에 HTML 형식의 텍스트를 쓸 수 없습니다, 당신은 WordprocessingML의 형식으로 변환 할 필요가 : 여기에 코드의 예입니다.
그러나 시도 할 수있는 또 다른 방법은 "AltChunk"요소를 삽입하는 것입니다. 이 요소는 HTML 파일을 참조 할 수있는 일종의 자리 표시자를 나타내며 MS Word에서 DOCX 파일을 열면 해당 HTML이 WordprocessingML 변환으로 변환됩니다. 자세한 내용은 다음을 참조하십시오

How to Use altChunk for Document Assembly은 또한 당신은 당신을 위해 WordprocessingML의 변환이 HTML을 할 수있는 GemBox.Document 같은 일부 타사를 사용할 수 있습니다. 예를 들어
Set Content example 확인 : A는 내가 시도 문서 파일 & # XD는 (단지 화면에 배치)에 입력 넣어

// Set content using HTML tags 
document.Sections[0].Blocks[4].Content.LoadText(
    "Paragraph 5 <b>(part of this paragraph is bold)</b>", LoadOptions.HtmlDefault);