sgcRichEdit: 내 애플리케이션 안의 워드 프로세서

· 컴포넌트
sgcRichEdit: 내 애플리케이션 안의 워드 프로세서 | eSeGeCe 블로그
✦  sgcUI · sgcRichEdit

워드 프로세서를.
내 애플리케이션 안에.

sgcRichEdit는 sgcUI의 새로운 서식 있는 문서 편집기입니다. 사용자는 스타일, 목록, 표, 이미지, 링크를 활용해 편지, 계약서, 메모, 보고서를 작성합니다. 코드에서는 RTF, HTML, Markdown, JSON을 읽고 쓰며, DOCX, PDF, PNG 페이지로 내보낼 수 있습니다.

  • VCL
  • FireMonkey
  • C++ Builder
  • WinForms
  • WPF
  • Avalonia

↔  핸들을 드래그해 라이트와 다크를 전환해 보세요

sgcRichEdit Editor—□✕
Fluent 프리셋 라이트 테마의 sgcRichEdit Editor 데모
Fluent 프리셋 다크 테마로 본 같은 문서
라이트다크
4입출력 형식
3내보내기 형식
5UI 프레임워크
12편집기 언어

업무용 애플리케이션이라면 언젠가는 제대로 된 문서가 필요해집니다. CRM은 고객에게 편지를 쓰고, 업무 관리 도구는 사건 메모를 보관하며, ERP는 견적서 템플릿을 저장하고, 헬프데스크는 서식이 있는 텍스트로 답변합니다. 단순한 메모 입력란으로는 어느 것도 해결할 수 없습니다.

sgcRichEdit는 sgcUI에 내장된 완전한 문서 편집기입니다. 이름 있는 스타일, 다단계 목록, 셀 병합이 가능한 표, 인라인 이미지, 하이퍼링크를 갖춘 실제 문서 모델을 유지하며 문서를 페이지 단위로 배치합니다. 하나의 문서 모델이 VCL, FireMonkey, WinForms, WPF, Avalonia 컨트롤을 모두 구동하고, 같은 모델이 창 없이도 문서를 불러오고 변환하고 내보냅니다.

60초로 보는 sgcRichEdit

스타일, 표, 모든 언어, 라이트와 다크, 모든 형식과 모든 플랫폼을 1분에 담았습니다. YouTube에서도 볼 수 있습니다.

텍스트 상자가 아닌 진짜 문서

계약서, 보고서, 편지는 언제 열어도 똑같이 보여야 합니다. sgcRichEdit는 단락을 이름 있는 스타일과 함께 저장하며, 서식은 스타일 체인과 직접 서식으로 결정됩니다. 그래서 제목 1 스타일을 바꾸면 문서의 모든 제목이 한 번에 바뀝니다.

AaAaAa
이름 있는 스타일본문, 제목 1~6, 표제, 부제, 인용, 코드, 목록 단락, 하이퍼링크, 표 격자가 기본으로 들어 있습니다.
9단계 목록글머리 기호, 숫자, 문자, 로마 숫자를 지원하며, 수준을 올리거나 내리는 명령이 있습니다.
표열과 행에 걸친 셀 병합, 머리글 행, 테두리, 배경, 중첩 표를 지원합니다.
이미지와 링크인라인 이미지와 하이퍼링크를 지원하며, Ctrl+클릭과 OnLinkClick 이벤트를 제공합니다.
↺↻
실행 취소와 다시 실행입력을 단어 단위로 묶는 전체 기록을 유지하므로, 한 번 실행 취소하면 단어 하나가 지워집니다.
3분기 성장, 유럽 성장
찾기 및 바꾸기단락과 표 셀을 가로질러 검색하며, 정규식을 지원하고 모두 바꾸기도 한 번의 실행 취소로 되돌립니다.

자세히 보기

굵게, 기울임, 밑줄, 취소선, 위 첨자와 아래 첨자, 글꼴 이름과 크기, 색상과 강조 표시, 정렬, 들여쓰기, 줄 간격을 지원합니다. 위 문서의 서식을 200% 확대하면 다음과 같습니다.

200% 확대한 문자 서식

표, 이미지, 페이지

편집기는 자체 페이지 설정에 따라 문서를 페이지로 나눕니다. 단락은 줄 단위로 나뉘고, 표의 머리글 행은 매 페이지에 반복되며, 쪽 나누기도 유지되므로 화면에서 보는 모습 그대로 인쇄됩니다. 데스크톱에서는 Print와 PrintPreview가 동작하고, ExportToPNG는 원하는 해상도로 모든 페이지를 렌더링합니다.

sgcRichEdit Editor—□✕
색상이 있는 머리글 행, 병합된 셀, 인라인 차트 이미지가 있는 표
PNG로 내보낸 문서의 1페이지
1페이지
PNG로 내보낸 문서의 2페이지
2페이지
PNG로 내보낸 문서의 3페이지
3페이지

스크린샷에 나온 문서의 세 페이지이며, ExportToPNG가 150 DPI로 만든 결과입니다.

모든 언어, 모든 사용자

일본어, 중국어, 한국어 사용자는 입력기(IME)로 글자를 입력하고, 아랍어와 히브리어 사용자는 오른쪽에서 왼쪽으로 글을 쓰며 같은 문장에 영어 단어를 섞기도 합니다. sgcRichEdit는 IME 조합 문자열을 캐럿 위치에 인라인으로 표시하고 한 번의 실행 취소 단위로 확정합니다. 양방향 단락에서도 캐럿과 선택 영역이 독자가 기대하는 위치에 유지되며, 단락마다 고유한 방향을 가집니다.

sgcRichEdit Editor—□✕
영어가 섞인 아랍어 오른쪽에서 왼쪽 텍스트와 일본어, 중국어, 한국어, 러시아어 단락, 다크 테마

라이트, 다크, Fluent, 클래식

sgcRichEdit는 sgcUI 컨트롤이므로 스위트의 다른 컨트롤처럼 애플리케이션 테마를 따릅니다. Fluent 프리셋을 선택하면 편집기와 리본이 Windows 11 스타일을 갖게 됩니다. 다크로 전환하면 리본, 상태 표시줄, 백스테이지가 어두워지고, 페이지는 종이처럼 흰색을 유지합니다.

sgcRichEdit Editor—□✕
Fluent 프리셋 라이트 테마의 sgcRichEdit
클래식 프리셋의 sgcRichEdit
Fluent 프리셋 다크 테마의 sgcRichEdit
uses
  sgcUICore_Theme;

// the Windows 11 look for every sgcUI control, sgcRichEdit included
sgcUISetApplicationThemePreset('Fluent');
// follow the light / dark setting of Windows, live
sgcUISetApplicationThemeFollow(utfSystem, True);

하나의 문서, 모든 형식

문서는 Word의 RTF, 브라우저나 이메일의 HTML, 개발자 도구의 Markdown으로 도착합니다. sgcRichEdit는 이 모두를 읽고 쓰며, 문서의 모든 세부 사항을 저장하는 고유 JSON 형식도 갖고 있습니다. LoadFromFile은 형식을 자동으로 감지하고, SaveToFile은 요청한 형식으로 저장하며, AsHTML, AsRTF, AsMarkdown은 문서를 문자열로 읽고 씁니다.

불러오기

RTFWord에서
HTMLCSS 포함
Markdown표도 지원
JSON고유 형식
하나의 문서 모델 스타일, 목록, 표, 이미지, 링크를 페이지로 배치

저장 및 내보내기

DOCXWord용
PDF태그 지정
PNG모든 DPI
RTF, HTML, MD및 JSON

uses 절에 넣은 각 형식 유닛이 해당 리더 또는 라이터를 등록하며, sgcUIPDF_Export는 sgcRichEdit와 함께 설치되는 sgcPDF 엔진에 PDF 내보내기를 연결합니다.

uses
  sgcRichEdit_Formats, sgcRichEdit_VCL,
  sgcRichEdit_RTF_Reader, sgcRichEdit_HTML_Writer, sgcRichEdit_Markdown,
  sgcRichEdit_DOCX, sgcUIPDF_Export;

procedure TForm1.ConvertContract;
begin
  sgcVCLRichEdit1.LoadFromFile('contract.rtf');
  sgcVCLRichEdit1.SaveToFile('contract.html', refHTML);
  sgcVCLRichEdit1.SaveToFile('contract.md', refMarkdown);
  sgcVCLRichEdit1.SaveToFile('contract.docx', refDOCX);
  sgcVCLRichEdit1.ExportToPDF('contract.pdf');
  sgcVCLRichEdit1.ExportToPNG('page1.png', 0, 150);
end;

익숙하게 편집하기

사용자는 워드 프로세서 습관을 그대로 가져옵니다. 편집기는 익숙한 단축키(Ctrl+B, Ctrl+I, Ctrl+U, 정렬, 제목, 글머리 기호, 링크용 Ctrl+K)에 반응하고, 전체 실행 취소와 다시 실행 기록을 유지하며, 단락과 표 셀을 가로질러 텍스트를 찾고 바꿉니다.

sgcRichEdit Editor—□✕
Editor 데모의 찾기 및 바꾸기 막대

모든 명령은 ExecuteCommand와 CommandState를 통해 코드에서, 그리고 VCL 및 FireMonkey 액션을 통해 사용할 수 있으므로, 직접 만든 도구 모음이나 sgcToolbar 리본이 선택 영역과 항상 동기화됩니다.

uses
  sgcRichEdit_Commands;

procedure TForm1.btnBoldClick(Sender: TObject);
begin
  sgcVCLRichEdit1.ExecuteCommand(recBold);
end;

procedure TForm1.sgcVCLRichEdit1SelectionChange(Sender: TObject);
begin
  // the button shows the state of the selection
  btnBold.Down := sgcVCLRichEdit1.CommandState(recBold).Checked;
end;

내 문서를 내 데이터베이스에

메모, 편지, 템플릿은 보통 데이터베이스 필드에 저장됩니다. TsgcVCLDBRichEdit와 TsgcFMXDBRichEdit는 TDataSource에 연결되어 메모 필드와 BLOB 필드를 읽고, 첫 변경 시 데이터셋을 편집 모드로 전환하며, 사용자가 컨트롤을 떠날 때 문서를 다시 기록합니다. Esc 키는 필드 값을 복원하고, AutoDisplay는 큰 문서를 필요할 때 불러옵니다.

uses
  sgcRichEdit_Formats, sgcRichEdit_VCL_DB;

sgcVCLDBRichEdit1.DataSource := dsNotes;
sgcVCLDBRichEdit1.DataField := 'NOTE';
// store the documents as JSON; refAuto, the default, detects the format
sgcVCLDBRichEdit1.FieldFormat := refJSON;

Linux64에서도 창 없이 실행

서버에서 문서를 변환해야 하는 경우가 많습니다. 포털용 RTF에서 HTML로, 보관용 JSON에서 PDF로, 썸네일용 페이지에서 PNG로 변환하는 식입니다. 문서 모델, 형식, 레이아웃, 내보내기는 VCL이나 FireMonkey에 의존하지 않으므로, Windows 서비스나 Linux64 데몬(Delphi 10.2 이상)이 창 없이도 문서를 불러오고, 수정하고, 렌더링하고, 내보낼 수 있으며, 시각적 컨트롤과 동일한 페이지 레이아웃을 얻습니다.

uses
  sgcRichEdit_Model, sgcRichEdit_Formats, sgcRichEdit_Print,
  sgcRichEdit_RTF_Reader, sgcRichEdit_HTML_Writer, sgcUIPDF_Export;

var
  oDocument: TsgcRichDocument;
begin
  oDocument := TsgcRichDocument.Create;
  try
    sgcRichLoadFromFile(oDocument, 'letter.rtf');
    sgcRichSaveToFile(oDocument, 'letter.html', refHTML);
    // tagged PDF, no window and no VCL or FireMonkey needed
    sgcRichExportPDF(oDocument, nil, 'letter.pdf');
  finally
    oDocument.Free;
  end;
end;

.NET도 지원합니다

WinForms, WPF, Avalonia용 .NET 컨트롤은 Delphi 컨트롤과 같은 이름을 사용합니다. 코어 라이브러리는 .NET Standard 2.0, .NET Framework 4.7.2, .NET 6, 8, 9, 10을 대상으로 하며, DocumentText 속성은 세 프레임워크 모두에서 데이터에 바인딩됩니다.

using esegece.sgcRichEdit;
using esegece.sgcUICore;

// once at startup: PDF export through the esegece.sgcUICore.sgcPDF package
TsgcUIPDFExporter.Register();

richEdit.LoadFromFile("contract.rtf");
richEdit.SaveToFile("contract.html", TsgcRichEditFormat.refHTML);
richEdit.SaveToFile("contract.docx", TsgcRichEditFormat.refDOCX);
richEdit.ExportToPDF("contract.pdf");

데모 실행하기

Delphi와 C++ Builder 데모는 sgcUI 체험판과 함께 설치되며, .NET 데모는 Registered .NET 다운로드에 포함되어 있습니다.

sgcRichEdit가 포함된 제품

sgcRichEdit는 Delphi 및 C++ Builder용과 .NET용으로 단독 판매되며, sgcUI Enterprise와 All-Access 번들에 포함됩니다. 하나의 패키지로 sgcPDF도 함께 설치되므로 PDF 내보내기는 항상 동작합니다. 무료 Community 에디션은 없습니다. 자세한 내용은 가격 페이지를 참고하세요.

사용자에게 워드 프로세서를 선물하세요

sgcRichEdit는 Delphi와 C++ Builder의 VCL 및 FireMonkey용, 그리고 WinForms, WPF, Avalonia 기반 .NET용 sgcUI 2026.11과 함께 출시됩니다.

질문이나 의견이 있으신가요? 문의해 주세요. 코드를 직접 작성한 사람들이 답변해 드립니다.