THotPDF.SetLoadedFreeTextText Method
Заменяет нормальный внешний вид загруженной FreeText-аннотации, используя встроенные шрифты Unicode, необязательный rich text и атомарную графовую транзакцию
Объявление
procedure SetLoadedFreeTextText(PageIndex, AnnotationIndex: Integer;
const AText: UnicodeString; const Options: THPDFLoadedTextAppearanceOptions;
const RichContent: AnsiString = ''; const DefaultStyle: AnsiString = '');
Опции
Инициализируйте запись через THPDFLoadedTextAppearanceOptions.Default, прежде чем менять отдельные поля
| Поле | Поведение |
|---|---|
| FontName, FontStyle, FontSize | Основной шрифт, стиль и размер в пунктах; дефолты — Arial, regular и 12 пунктов |
| TextColor, Alignment, Padding | Цвет обычного текста, выравнивание left/center/right и отступ в пунктах; дефолты — black, left и 2 пункта |
| Opacity, Rotation | Прозрачность в [0,1] и поворот с шагом 90 градусов |
| OverflowPolicy | THPDFLoadedTextOverflowPolicy: ltopReject отклоняет переполнение, ltopClip обрезает его, ltopShrinkToFit повторяет попытку с меньшими шрифтами |
| MinFontSize | Нижняя граница уменьшения, дефолт 4 пункта |
| MaxTextUnits | Бюджет ввода и обычного текста, дефолт 1,048,576 юнитов UTF-16; rich-ввод ограничен четырьмя такими бюджетами |
Поведение
AText передаёт обычный текст Unicode; непустой UTF-8 RichContent вместо этого использует HTML-импортёр и необязательный CSS DefaultStyle, после чего /Contents выводится из сгенерированного текста
Сгенерированный внешний вид копирует встроенные шрифты и отображения ToUnicode в загруженный документ, поэтому сохранение, уплощение и извлечение текста сохраняют его текст Unicode
Метод наследует настроенные цепочки резервных шрифтов, ShapingFeatures, переключатели auto-shaping для арабского, сирийского, N'Ko, Adlam и Hanifi Rohingya, а также выборы письменности и языка GSUB; каждая попытка shrink-to-fit использует те же настройки, не меняя конфигурацию вызывающего кода
Метод сохраняет поддерживаемые фон, сплошную/пунктирную границу, вставки прямоугольника и геометрию callout из двух/трёх точек, а также синхронизирует /AP, /Contents, /RC, /DS, /CA, /Q и метаданные поворота
Некорректная геометрия, неразрешённые глифы обычного текста, облачные границы, лимиты ресурсов и отклонённое переполнение бросают исключение и откатывают всё обновление; существующие внешние графовые транзакции остаются активными
Rich text следует поддерживаемому подмножеству HTML/CSS; внешние ресурсы отключены, а фиксированные размеры шрифтов CSS могут помешать shrink-to-fit уменьшить отдельные runs
Каждый писатель внешних видов принимает не более 256 различных shaping-выборов шрифтов и 64 MiB суммарных сырых данных шрифтов; превышение любого лимита отклоняет обновление и сохраняет исходную аннотацию
Связанные API
- SetLoadedFreeTextRichText использует этот конвейер внешних видов с обрезкой при переполнении
- SetLoadedFreeTextPlainText сохраняет исходный ASCII-контракт
- SetLoadedAnnotationContents правит только сохранённое содержимое