|
Legger til en riktekst-tekstwidget for AcroForm i PDF 1.5+ (ISO 32000-1 12.7.4.3 + Annex L) på gjeldende side. Widgeten inneholder standard reserveløsning for ren tekst med /V + /DV for lesere som ikke tolker riktekst, samt den nye riktekst-XHTML-kroppen i /RV og standardstiloppføringene i /DS som Acrobat og Foxit leser direkte for å rendere formatert tekst. /Ff-biten for RichText (26) settes automatisk med OR
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());
Beskrivelse
Widgeten skrives som et Tx-skjemafelt med /FT /Tx, /DA (/Helv 12 Tf 0 0 0 rg), /Ff med RichText-biten satt, den oppgitte InitialValue som både /V og /DV, RichValue som /RV og DefaultStyle som /DS. InitialValue, RichValue og DefaultStyle oppdager automatisk innhold med flere byte og bytter til UTF-16BE hex-strengkoding når det trengs (i tråd med eksisterende AddTextField-atferd for internasjonale felt med ren tekst)
Riktekst rendres i leseren: Acrobat / Foxit / Edge / Chrome PDF-viser tolker alle /RV når RichText-biten er på og henter Unicode-fontreserver fra systemet, slik at CJK-, kyrillisk-, arabisk- og aksentert latinsk innhold vises riktig uten at HotPDF bygger inn en CID-font i /DR-ressursene. For HotPDFs egen AutoFormAppearances-sti forblir plassholdergrenen med tom AP for flerbyte-tekst på plass (v2.56.0+-oppgaven); riktekstbevisste lesere ignorerer den AP-en og rendrer direkte fra /RV
FieldName - PDF-skjemafeltets delnavn i /T (må være unikt innenfor sin forelder). Mellomrom og ikke-ASCII-byte godtas; ikke-ASCII utløser UTF-16BE-koding i den skrevne /T-strengen
InitialValue - PDF-tekststreng i ren tekst som skrives til /V og /DV. Lesere som ikke tolker /RV bruker denne verdien som visningstilfelle
RichValue - merket XHTML-kropp for PDF 1.7 Annex L (den mest portable formen begynner med <?xml version="1.0"?> og en XHTML <body>-rot med navneområdeattributtet xfa:contentType="text/html"). Innelagt stil bruker <span style="..."> med CSS-egenskaper (font-family, font-size, font-weight, font-style, color osv)
DefaultStyle - CSS-lignende stilstreng som brukes på tegn brukeren skriver ved utfylling når det ikke finnes noen per-tegn-stil i /RV. Eksempel: 'font: 12pt Helvetica; color: #000000'
Rectangle - widgetens /Rect i HotPDF-skjermkoordinater (øverst til venstre som origo); Y-projeksjonen skjer automatisk når rektangelet konverteres til PDF-brukerrom
MaxLen - valgfri; når den er større enn null, skrives en /MaxLen-oppføring som begrenser antall tegn brukeren kan skrive. Standard er 0 (ingen grense)
Flags - valgfri; eventuelle ekstra feltflagg som skal OR-es inn i /Ff utover den automatisk lagte RichText-biten. Vanlige ekstra flagg: ffMultiline for riktekst med flere avsnitt, ffReadOnly for formatert tekst kun til visning. Flagget ffRichText legges alltid til, så kalleren trenger ikke inkludere det
Kodeeksempel
// 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;
Se også
AddTextField, AutoFormAppearances, Version, AcroForm Support
|