2010-01-16 5 views
1

C# 콘솔 응용 프로그램에서 HTML 코드를 포함하는 문자열을 표시하고 싶습니다 (주로 기울임 꼴, 굵게, 들여 쓰기, 색 등의 형식을 지정하는 데 사용).html 형식의 문자열 표시

WebBrowser 클래스로 이동할 필요가 없을 것입니다. 왜냐하면 탐색이 가능하지 않기 때문입니다.

1) 가장 직접적인 방법은 무엇입니까?

2) hmtl 포매팅을 사용하여 콘솔에 표시 할 수 있습니까?

감사합니다.

+0

정말 명령 프롬프트/콘솔 창을 의미합니까, 아니면 실제로 Windows 양식을 말하고 있습니까? 그들은 매우 다른 것들입니다. – Ash

+0

나는 둘 다 의미한다. 나는 콘솔과 형태가 다른 것을 알고 있지만 목적은 같습니다. 눈에 보이는 것들을 화면에 인쇄하십시오. – Stringer

답변

1

기존 HTML 렌더링 엔진을 사용하면 성능 측면에서 특히 비용이 많이 듭니다.

다른 문제는 대부분의 HTML 서식이 콘솔로 변환되지 않는다는 것입니다. 실제로 사용할 수있는 유일한 효과는 전경색과 배경색뿐입니다.

가장 좋은 방법은 간단한 파서를 작성하는 것입니다. 콘솔 색상을 사용하여 굵게 또는 기울임 꼴로 해석하는 방법을 결정해야합니다.

구문 분석이 매우 간단해야하는 HTML 태그를 2 개만 처리하면되므로 다른 HTML 태그를 무시하는 논리는 매우 간단합니다.

참고 HTML은 일반 언어가 아니므로 정규식을 구문 분석에 효과적으로 사용할 수 없습니다. 필자는 간단한 재귀 파파를 추천한다. 또한 상태 머신을 작성할 수도 있지만, 반드시 재귀 적 또는 스택 적 의미를 가질 필요가 있습니다.

2

콘솔에는 html이 지원되지 않습니다. 콘솔의 전경색과 배경색을 설정할 수 있지만 기울임 체나 굵은 체는 사용할 수 없습니다. 기껏해야 콘솔에서 색상을 사용할 수 있도록 html 인터프리터를 작성하거나 (System.Xml 네임 스페이스에있는 클래스로 해킹 할 수 있습니다.)

WebBrowser 컨트롤을 참조하기 때문에 실제로 Winforms를 사용하는 것처럼 들립니다. 그렇다면 읽기 전용 RichTextBox 또는 WebBrowser 컨트롤을 사용하거나 절대적으로 가벼운 솔루션이 필요한 경우 필요한 html 부분을 처리하는 자체 컨트롤을 구현할 수 있습니다.

+0

모든 유형의 HTML 파서를 손으로 구르는 것에 대해 나는 떨린다. –

+0

Html Agility Pack이 가장 널리 사용되는 .NET HTML 파서 인 것으로 보입니다. http://codeplex.com/htmlagilitypack – Josh

+0

아주 간단한 뼈대 파서를 처리하는 아주 간단한 뼈대 파서는 재귀 괜찮은 기술을 사용하여 매우 간단합니다. – Foredecker

0

원하는 경우 렌더링을 위해 HTML Control을 사용할 수 있습니다.

윈도우 폼에 플롭하고 MSHTML을 래핑하여 렌더링을 수행합니다.

HTML 렌더링은 쉬운 일이 아닙니다. Gecko, WebKit 및 MSHTML은 거대한 코드베이스입니다. 당신은 자신의 롤을 시도하는 것보다 그 중 하나를 사용하는 것이 좋습니다.

+0

@ 존, 나는 그걸 너무보고 싶었지만, 그는 Windows Forms가 아닌 명령 프롬프트 (콘솔 창)에 서식있는 텍스트를 표시하는 것에 대해 이야기하고 있습니다. – Ash

+0

@Ash 사실, 둘 다있을 수 있습니다. 가장 구현하기 쉬운 솔루션을 선택하겠습니다. – Stringer