THPDFPage.AddRichTextField Método

 

THPDFPage.AddRichTextField

THPDFPage

 

Arriba

Agrega a la página actual un widget de texto enriquecido AcroForm de PDF 1.5+ (ISO 32000-1 12.7.4.3 + Annex L). El widget incluye el respaldo de texto plano estándar /V + /DV que usan los lectores que no analizan texto enriquecido, además del nuevo cuerpo XHTML de texto enriquecido /RV y las entradas de estilo predeterminado /DS que Acrobat y Foxit consumen directamente para renderizar texto con formato. El bit RichText /Ff (26) se agrega automáticamente

 

Sintaxis Delphi:

procedure AddRichTextField(const FieldName, InitialValue: AnsiString; const RichValue, DefaultStyle: AnsiString; Rectangle: TRect; MaxLen: Integer = 0; Flags: THPDFFormFieldFlags = []);

 

Sintaxis C++:

void AddRichTextField(const AnsiString& FieldName, const AnsiString& InitialValue, const AnsiString& RichValue, const AnsiString& DefaultStyle, const TRect& Rectangle, int MaxLen = 0, THPDFFormFieldFlags Flags = THPDFFormFieldFlags());

 

Descripción

El widget se emite como un campo de formulario Tx con /FT /Tx, /DA (/Helv 12 Tf 0 0 0 rg), /Ff con el bit RichText activado, el InitialValue suministrado como /V y /DV, RichValue como /RV y DefaultStyle como /DS. InitialValue, RichValue y DefaultStyle detectan automáticamente contenido multibyte y cambian a codificación de cadena hex UTF-16BE cuando hace falta, en consonancia con el comportamiento existente de AddTextField para campos internacionales de texto plano

El renderizado de texto enriquecido ocurre en el lector: Acrobat, Foxit, Edge y el visor PDF de Chrome analizan /RV cuando el bit RichText está activado y toman las fuentes Unicode de respaldo del sistema, así que el contenido CJK, cirílico, árabe y latino con acentos se muestra correctamente sin que HotPDF incruste una fuente CID en los recursos /DR. Para la ruta propia de AutoFormAppearances de HotPDF, la rama de AP vacío de marcador de posición para texto multibyte sigue vigente (la tarea v2.56.0+); los lectores compatibles con texto enriquecido ignoran ese AP y renderizan directamente desde /RV

 

FieldName - el nombre parcial /T del campo de formulario PDF (debe ser único dentro de su contenedor padre). Se aceptan espacios y bytes no ASCII; los bytes no ASCII activan la codificación UTF-16BE en la cadena /T emitida

InitialValue - cadena de texto PDF de texto plano escrita en /V y /DV. Los lectores que no analizan /RV recurren a este valor para mostrarlo

RichValue - cuerpo XHTML etiquetado de PDF 1.7 Annex L (la forma más portable empieza con <?xml version="1.0"?> y una raíz XHTML <body> que lleva el atributo de espacio de nombres xfa:contentType="text/html"). El estilo en línea usa <span style="..."> con propiedades CSS (font-family, font-size, font-weight, font-style, color, etc.)

DefaultStyle - cadena de estilo similar a CSS que se aplica a los caracteres que el usuario escribe al completar el campo cuando no hay un estilo por carácter presente en /RV. Ejemplo: 'font: 12pt Helvetica; color: #000000'

Rectangle - el /Rect del widget en las coordenadas de pantalla de HotPDF, con origen en la esquina superior izquierda; la proyección Y ocurre automáticamente cuando el rect se convierte al espacio de usuario PDF

MaxLen - opcional; cuando es mayor que cero, emite una entrada /MaxLen que limita la cantidad de caracteres ingresados por el usuario. El valor predeterminado es 0, sin límite

Flags - opcional; cualquier bandera adicional de campo para combinar con OR en /Ff además del bit RichText agregado automáticamente. Banderas adicionales típicas: ffMultiline para cuerpos de texto enriquecido de varios párrafos, ffReadOnly para texto formateado de solo lectura. La bandera ffRichText siempre se agrega, así que el llamador no necesita incluirla

 

Ejemplo de código

// Widget Tx de texto enriquecido con marcado en negrita e itálica
var
  Rich, DS: AnsiString;
  R: TRect;
begin
  HPDF.BeginDoc;

  Rich :=
    '<?xml version="1.0"?>' +
    '<body xmlns="http://www.w3.org/1999/xhtml" ' +
    'xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/" ' +
    'xfa:contentType="text/html">' +
    '<p style="font-family:Helvetica;font-size:12pt">' +
    '<span style="font-weight:bold">Bold</span> and ' +
    '<span style="font-style:italic">italic</span> text.' +
    '</p></body>';
  DS := 'font: 12pt Helvetica; color: #000000';
  R.Left := 60; R.Top := 60; R.Right := 280; R.Bottom := 100;

  HPDF.CurrentPage.AddRichTextField(
    'Biography', 'Plain biography text', Rich, DS, R);

  HPDF.EndDoc;
end;

 

Véase también

AddTextField, AutoFormAppearances, Version, Soporte AcroForm