sgcRichEdit: un procesador de textos dentro de tu propia aplicación

· Componentes
sgcRichEdit: un procesador de textos dentro de tu propia aplicación | Blog de eSeGeCe
✦  sgcUI · sgcRichEdit

Un procesador de textos.
Dentro de tu aplicación.

sgcRichEdit es el nuevo editor de documentos de texto enriquecido de sgcUI. Tus usuarios escriben cartas, contratos, notas e informes con estilos, listas, tablas, imágenes y enlaces. Tu código lee y escribe RTF, HTML, Markdown y JSON, y exporta páginas a DOCX, PDF y PNG.

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

↔  Arrastra el control para pasar del tema claro al oscuro

sgcRichEdit Editor—□✕
La demo Editor de sgcRichEdit con el preset Fluent, tema claro
El mismo documento con el preset Fluent, tema oscuro
ClaroOscuro
4formatos de entrada y salida
3formatos de exportación
5frameworks de UI
12idiomas del editor

Tarde o temprano, toda aplicación empresarial necesita documentos reales. Un CRM redacta cartas a los clientes, una herramienta de gestión de despachos guarda las notas de cada caso, un ERP almacena plantillas de presupuestos y un servicio de atención al cliente responde con texto con formato. Un simple campo de texto plano no basta para nada de eso.

sgcRichEdit es un editor de documentos completo integrado en sgcUI. Mantiene un modelo de documento real con estilos con nombre, listas multinivel, tablas con celdas combinadas, imágenes en línea e hipervínculos, y distribuye el documento en páginas. Un único modelo de documento gobierna los controles VCL, FireMonkey, WinForms, WPF y Avalonia, y ese mismo modelo carga, convierte y exporta documentos sin necesidad de ninguna ventana.

sgcRichEdit en 60 segundos

Estilos, tablas, todos los idiomas, tema claro y oscuro, todos los formatos y todas las plataformas en un minuto. También en YouTube.

Un documento real, no un cuadro de texto

Los contratos, informes y cartas deben verse igual cada vez que se abren. sgcRichEdit guarda los párrafos con estilos con nombre, y el formato procede de una cadena de estilos más el formato directo, de modo que al cambiar el estilo Heading 1 cambian todos los títulos del documento a la vez.

AaAaAa
Estilos con nombreNormal, Heading 1 a 6, Title, Subtitle, Quote, Code, List Paragraph, Hyperlink y Table Grid vienen incluidos.
Listas de 9 nivelesViñetas, números, letras y números romanos, con un comando para subir o bajar de nivel.
TablasCeldas combinadas entre columnas y filas, filas de encabezado, bordes, fondos y tablas anidadas.
Imágenes y enlacesImágenes en línea e hipervínculos, con Ctrl+clic y un evento OnLinkClick.
↺↻
Deshacer y rehacerUn historial completo, con la escritura agrupada por palabras, de modo que un solo deshacer elimina una palabra.
crecimiento en el T3, crecimiento en Europa
Buscar y reemplazarEn párrafos y celdas de tabla, con expresiones regulares y Reemplazar todo como un único paso de deshacer.

De cerca

Negrita, cursiva, subrayado, tachado, superíndice y subíndice, nombres de fuente, tamaños, colores y resaltados, alineación, sangrías e interlineado. Este es el formato del documento anterior con un zoom del 200%.

Formato de caracteres con zoom del 200%

Tablas, imágenes y páginas

El editor pagina el documento con su propia configuración de página. Los párrafos se dividen por líneas, las filas de encabezado de una tabla se repiten en cada página y se respetan los saltos de página, así que lo que los usuarios ven es lo que imprimen. Print y PrintPreview funcionan en el escritorio, y ExportToPNG renderiza cualquier página con la resolución que elijas.

sgcRichEdit Editor—□✕
Una tabla con una fila de encabezado de color, una celda combinada y una imagen de gráfico en línea
Página 1 del documento, exportada a PNG
Página 1
Página 2 del documento, exportada a PNG
Página 2
Página 3 del documento, exportada a PNG
Página 3

Las tres páginas del documento de las capturas, generadas por ExportToPNG a 150 DPI.

Todos los idiomas, todos los usuarios

Los usuarios de japonés, chino y coreano escriben mediante un editor de métodos de entrada, y los de árabe y hebreo escriben de derecha a izquierda, a menudo con palabras en inglés en la misma frase. sgcRichEdit muestra la composición del IME en línea junto al cursor y la confirma como un único paso de deshacer. Los párrafos bidireccionales mantienen el cursor y la selección donde el lector los espera, y cada párrafo tiene su propia dirección.

sgcRichEdit Editor—□✕
Texto árabe de derecha a izquierda mezclado con inglés, y párrafos en japonés, chino, coreano y ruso, tema oscuro

Claro, oscuro, Fluent o clásico

sgcRichEdit es un control de sgcUI, así que sigue el tema de la aplicación como el resto de la suite. Elige el preset Fluent y el editor y la cinta de opciones adoptan el aspecto de Windows 11. Cambia al tema oscuro y la cinta, la barra de estado y el backstage se oscurecen, mientras la página sigue blanca, como el papel.

sgcRichEdit Editor—□✕
sgcRichEdit con el preset Fluent, tema claro
sgcRichEdit con el preset Classic
sgcRichEdit con el preset Fluent, tema oscuro
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);

Un documento, todos los formatos

Los documentos llegan como RTF desde Word, como HTML desde un navegador o un correo electrónico, y como Markdown desde una herramienta de desarrollo. sgcRichEdit lee y escribe todos ellos y conserva su propio formato JSON nativo, que almacena cada detalle del documento. LoadFromFile detecta el formato, SaveToFile usa el formato que le pidas, y AsHTML, AsRTF y AsMarkdown leen y escriben el documento como una cadena.

Cargar

RTFdesde Word
HTMLcon CSS
Markdowncon tablas
JSONnativo
Un único modelo de documento Estilos, listas, tablas, imágenes y enlaces, distribuidos en páginas

Guardar y exportar

DOCXpara Word
PDFetiquetado
PNGcualquier DPI
RTF, HTML, MDy JSON

Cada unidad de formato de la cláusula uses registra su lector o escritor, y sgcUIPDF_Export conecta la exportación a PDF con el motor sgcPDF, que se instala junto con sgcRichEdit.

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;

Una edición que resulta familiar

Los usuarios traen consigo los hábitos de su procesador de textos. El editor responde a los atajos habituales (Ctrl+B, Ctrl+I, Ctrl+U, alineación, encabezados, viñetas y Ctrl+K para enlaces), mantiene un historial completo de deshacer y rehacer, y busca y reemplaza texto en párrafos y celdas de tabla.

sgcRichEdit Editor—□✕
La barra de buscar y reemplazar de la demo Editor

Todos los comandos están disponibles desde código mediante ExecuteCommand y CommandState, y a través de acciones VCL y FireMonkey, de modo que tu propia barra de herramientas o una cinta sgcToolbar se mantiene sincronizada con la selección.

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;

Tus documentos, en tu base de datos

Las notas, cartas y plantillas suelen vivir en un campo de base de datos. TsgcVCLDBRichEdit y TsgcFMXDBRichEdit se conectan a un TDataSource, leen campos memo y BLOB, ponen el conjunto de datos en modo de edición con el primer cambio y escriben el documento de vuelta cuando el usuario abandona el control. Escape restaura el valor del campo, y AutoDisplay carga los documentos grandes bajo demanda.

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;

Sin interfaz, incluso en Linux64

A menudo hay que convertir documentos en un servidor: de RTF a HTML para un portal, de JSON a PDF para un archivo, de una página a PNG para una miniatura. El modelo de documento, los formatos, la maquetación y las exportaciones no dependen de VCL ni de FireMonkey, así que un servicio de Windows o un demonio Linux64 (Delphi 10.2 y posteriores) puede cargar, modificar, renderizar y exportar documentos sin ventana, con la misma maquetación de página que los controles visuales.

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;

También para .NET

Los controles .NET para WinForms, WPF y Avalonia usan los mismos nombres que los de Delphi. La biblioteca principal es compatible con .NET Standard 2.0, .NET Framework 4.7.2 y .NET 6, 8, 9 y 10, y la propiedad DocumentText se enlaza con tus datos en los tres frameworks.

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");

Ejecuta las demos

Las demos de Delphi y C++ Builder se instalan con la versión de prueba de sgcUI, y las demos .NET se incluyen en la descarga .NET Registered.

Dónde se incluye sgcRichEdit

sgcRichEdit se vende por separado para Delphi y C++ Builder y para .NET, y se incluye en sgcUI Enterprise y en el paquete All-Access. El paquete único instala también sgcPDF, así que la exportación a PDF siempre funciona. No existe una edición Community gratuita. Consulta la página de precios para ver los detalles.

Ofrece a tus usuarios un procesador de textos

sgcRichEdit llega con sgcUI 2026.11 para Delphi y C++ Builder, en VCL y FireMonkey, y para .NET en WinForms, WPF y Avalonia.

¿Preguntas o comentarios? Ponte en contacto con nosotros, te responderán las personas que escribieron el código.