2012-01-27 2 views
1

나는이처럼 보이는 RTF 있습니다가장 좋은 방법

{\ rtf1 \ ANSI \ ansicpg1252 \ uc0 \ deff0 {\ fonttbl의 \ r에 \ n을 {\ F0의 \를 fswss \ fprq2 Arial;} \ r \ n {\ f1 \ froman \ fcharset2 \ fprq2 기호;}} \ r \ n {\ colortbl; \ red0 \ green0 \ blue0; \ red255 \ green255 \ blue255;} \ r \ n 개의 \ 연구 \ n을 \ deftab1134 \ PARD \ 일반 \ fs24 hohohoHi \ PARD \ \ F0 파 \ 파}

나는 그것을 제거 할 그것의 끝에 추가 \의 PARD의 \ 파가있다. 나는 RTF의 끝 부분에 여분의 \ pard \ par를 추가하는 것과 같은 텍스트 편집기를 사용하는 버그가 있다고 생각한다. 그러나 사용자가 의도적으로 텍스트에 추가했다면 \ pard \ par를 유지하기를 원한다. . 그래서 나는 RTF의 끝에서 여분의 \ pard \ par를 제거하는 좋은 방법을 묻는 중이다.하지만 사용자가 일부 줄 바꿈을 의도적으로 입력했기 때문에 한 쌍만 제거한다.

문자열 방법 ? RegEx?

답변

2

네, 그럴 수 있습니다.

그 중 한 가지 방법은 SelectAll이고 Rtf 대신 SelectedRtf을 가져 오는 것입니다. 사용자가 점멸을 방지하기 위해

는,이 같은 빠른 일시적으로 RichTextBox 컨트롤을 만들 쉽게 : 여기

StringBuilder sb = new StringBuilder(); 
sb.AppendLine(richTextBox1.Rtf); 
sb.AppendLine(); 

string myRTF = string.Empty; 
using (RichTextBox rtb = new RichTextBox()) { 
    rtb.Rtf = richTextBox1.Rtf; 
    rtb.SelectAll(); 
    sb.AppendLine(rtb.SelectedRtf); 
} 

string results = sb.ToString(); 

그냥 "안녕하세요"하고 한 줄의 리턴으로 두 가지 방법의 결과입니다 :

{\ rtf1 \ ANSI \ ansicpg1252 \ deff0 \ deftab1134 {\ fonttbl {\ F0 \ fswiss \ fprq2 \ fcharset0 굴림;}}
\ viewkind4 \ UC1 \ PARD \ lang1033 \ F0 \ fs24 안녕하세요 \ 파
\ par
,451,515,은}

{\ rtf1 \ ANSI \ ansicpg1252 \ deff0 \ deftab1134 {\ fonttbl {\ F0 \ fswiss \ fprq2 \ fcharset0 굴림;}}
\ viewkind4 \ UC1 \ PARD \ lang1033 \ F0 \ fs24 안녕하세요 \ 파
}