Methode THPDFPage.AddRichTextField

 

THPDFPage.AddRichTextField

THPDFPage

 

Oben

Fügt ein PDF 1.5+ AcroForm Rich-Text-Text-Widget (ISO 32000-1 12.7.4.3 + Anhang L) auf der aktuellen Seite hinzu; das Widget enthält das standardmäßige Nur-Text-Fallback /V + /DV, das von Readern verwendet wird, die keinen Rich-Text parsen, sowie die neuen Einträge /RV (Rich-Text-XHTML-Inhalt) und /DS (Standardstil), die Acrobat und Foxit direkt zum Rendern von formatiertem Text verwenden; das /Ff RichText-Bit (26) wird automatisch verodert

 

Delphi-Syntax:

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

 

C++-Syntax:

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

 

Beschreibung

Das Widget wird als Tx-Formularfeld mit /FT /Tx, /DA (/Helv 12 Tf 0 0 0 rg), /Ff mit gesetztem RichText-Bit, dem bereitgestellten InitialValue als /V und /DV, RichValue als /RV und DefaultStyle als /DS ausgegeben; InitialValue, RichValue und DefaultStyle erkennen Multibyte-Inhalte automatisch und wechseln bei Bedarf zur UTF-16BE-Hex-String-Codierung (entspricht dem vorhandenen Verhalten von AddTextField für internationale Nur-Text-Felder)

Das Rich-Text-Rendering findet im Reader statt: Acrobat / Foxit / Edge / Chrome PDF-Viewer parsen alle /RV, wenn das RichText-Bit aktiviert ist, und beziehen Unicode-Schriftart-Fallbacks vom System, sodass CJK-, kyrillische, arabische und akzentuierte lateinische Inhalte korrekt angezeigt werden, ohne dass HotPDF eine CID-Schriftart in die /DR-Ressourcen einbettet; für HotPDFs eigenen Pfad AutoFormAppearances bleibt der Platzhalter-Zweig für leere APs für Multibyte-Text bestehen (die Aufgabe ab v2.56.0+); Rich-Text-fähige Reader ignorieren dieses AP und rendern direkt aus /RV

 

FieldName - der Teilname /T des PDF-Formularfelds (muss innerhalb seines übergeordneten Elements eindeutig sein); Leerzeichen und Nicht-ASCII-Bytes werden akzeptiert; Nicht-ASCII löst die UTF-16BE-Codierung für die ausgegebene /T-Zeichenfolge aus

InitialValue - Nur-Text-PDF-Zeichenfolge, die in /V und /DV geschrieben wird; Reader, die /RV nicht parsen, greifen für die Anzeige auf diesen Wert zurück

RichValue - gemeldetes XHTML-Inhaltselement gemäß PDF 1.7 Anhang L (die portabelste Form beginnt mit <?xml version="1.0"?> und einem XHTML <body>-Stammverzeichnis, das das Namespace-Attribut xfa:contentType="text/html" trägt); Inline-Styling verwendet <span style="..."> mit CSS-Eigenschaften (font-family, font-size, font-weight, font-style, color etc)

DefaultStyle - CSS-ähnliche Formatierungszeichenfolge, die auf Zeichen angewendet wird, die der Benutzer beim Ausfüllen eingibt, wenn kein zeichenspezifischer Stil in /RV vorhanden ist; Beispiel: 'font: 12pt Helvetica; color: #000000'

Rectangle - das /Rect des Widgets in HotPDF-Bildschirmkoordinaten (Ursprung oben links); die Y-Projektion erfolgt automatisch, wenn das Rechteck in den PDF-Benutzerraum konvertiert wird

MaxLen - optional; wenn größer als Null, wird ein /MaxLen-Eintrag ausgegeben, der die vom Benutzer eingegebene Zeichenanzahl begrenzt; Standardwert ist 0 (kein Limit)

Flags - optional; alle zusätzlichen Feldfahnen, die über das automatisch hinzugefügte RichText-Bit hinaus in /Ff verodert werden sollen; typische zusätzliche Flags: ffMultiline für mehrteilige Rich-Text-Absätze, ffReadOnly für schreibgeschützten formatierten Text; das Flag ffRichText wird immer hinzugefügt, sodass der Aufrufer es nicht einschließen muss

 

Codebeispiel

// Rich-text Tx widget with bold + italic markup
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;

 

Siehe auch

AddTextField, AutoFormAppearances, Version, AcroForm-Unterstützung