SetStructElemActualText

Tagged PDF & Accessibility

Description

Sätter /ActualText-posten på det strukturelement som för tillfället byggs på taggstacken. ActualText anger exakt den Unicode-text som elementet representerar och åsidosätter all text som läsarprogram extraherar från PDF:ens innehållsström

Använd den här funktionen när glyferna som renderas i innehållsströmmen inte direkt mappar till sina avsedda läsordningstecken — till exempel en ligaturglyf (ff, fi, fl) som borde läsas som tvåteckensekvensen ff, fi eller fl. Utan ActualText kan textextraktionsverktyg och skärmläsare ge felaktig utdata för sådana glyfer

Syntax

Delphi

Function TPDFlib.SetStructElemActualText(Const ActualText: WideString): Integer;

ActiveX

Function PDFlib::SetStructElemActualText(ActualText As String) As Long

DLL

int DLSetStructElemActualText(int InstanceID, const wchar_t * ActualText);

Parameters

ActualTextUnicode-textsträngen som ska knytas till det aktuella strukturelementet. Ange en tom sträng för att rensa ett tidigare satt värde

Return value

Returnerar 1 vid lyckat anrop, 0 om inget strukturelement för tillfället är öppet eller inget dokument är valt

Remarks

Anropa den här funktionen omedelbart efter BeginTag eller BeginTagEx medan målelementet ligger överst på taggstacken

ActualText och AltText fyller olika syften. AltText (satt via AltText-parametern i BeginTag) är en alternativ representation av hela elementet, avsedd för hjälpmedelsteknik när det visuella innehållet inte kan renderas. ActualText kompletterar extraktion av text ur innehållsströmmen: den ersätter elementets extraherade teckensekvens men undertrycker inte rendering. Skärmläsare som stödjer båda använder typiskt ActualText för uppläst utdata när den finns

ISO 32000-1 §14.9.4 defines ActualText as a PDF text string entry on the structure element dictionary. PDF/UA-1 (ISO 14289-1 §7.1) requires that text content be extractable and correct; ActualText is the standard mechanism to satisfy this requirement for glyph sequences whose direct extraction would be ambiguous or incorrect.

Example

// Tag a ligature glyph so that text extraction yields "fi"
PDFlib.BeginTag('Span', '', '');
PDFlib.SetStructElemActualText('fi');
PDFlib.TextOut(x, y, #$FB01);   // U+FB01 LATIN SMALL LIGATURE FI
PDFlib.EndTag;

See also

BeginTag, BeginTagEx, SetStructElemID, AddTagAttribute, GetPDFUADiagnostics