2013-02-12 3 views
1

나는 워드 문서를 템플릿으로 사용하며 자리 표시자를 대체하려고합니다. # 여러 줄의 텍스트로 주소를 지정하십시오. Environment.NewLine이 무시된다는 점을 제외하면 작동합니다. 그렇다면 각 줄마다 줄 바꿈을 넣으려면 어떻게해야합니까? 코드에서 addressLines은 쉼표와 표준 새 줄 상수로 구분 된 컬렉션의 각 줄로 구성된 문자열임을 지적해야합니다.Word interop; 일부 텍스트를 줄 바꿈으로 바꾸기

public static void PrintAddress(string companyName, List<string> lines, string outputFolder) 
{ 
    // TODO put in linebreak for each line of the address 
    lines.Insert(0, companyName); 
    var lineEnd = "," + Environment.NewLine; 
    var addressLines = string.Join(lineEnd, lines.ToArray()); 
    var application = new Application(); 
    var path = Path.Combine(HttpContext.Current.Server.MapPath(AppSettings.UploadFolder), SessionObjectsSCD.UploadedFile.FileName); 
    var document = application.Documents.Open(path); 
    WordDocumentClass.FindAndReplace(document, "#ADDRESS", addressLines); 
    object filename = string.Format("{0}/{1}.docx", outputFolder, companyName); 
    document.SaveAs(ref filename); 

    // TODO print document 

    application.Quit(); 
} 

public static void FindAndReplace(Document document, string placeHolder, string newText) 
{ 
    object missingObject = null; 
    object item = WdGoToItem.wdGoToPage; 
    object whichItem = WdGoToDirection.wdGoToFirst; 
    object replaceAll = WdReplace.wdReplaceAll; 
    object forward = true; 
    object matchAllWord = true; 
    object matchCase = false; 
    object originalText = placeHolder; 
    object replaceText = newText; 

    document.GoTo(ref item, ref whichItem, ref missingObject, ref missingObject); 
    foreach (Range rng in document.StoryRanges) 
    { 
     rng.Find.Execute(
      ref originalText, 
      ref matchCase, 
      ref matchAllWord, 
      ref missingObject, 
      ref missingObject, 
      ref missingObject, 
      ref forward, 
      ref missingObject, 
      ref missingObject, 
      ref replaceText, 
      ref replaceAll, 
      ref missingObject, 
      ref missingObject, 
      ref missingObject, 
      ref missingObject); 
    } 
} 

답변

2

나는이 대답 것으로 나타났습니다; var lineEnd = ", \ x0B";

다음 번에 나는 다른 대답에서 언급 한 Open XML Toolkit을 시도 할 것입니다.

관련 문제