function IsAnnotationObjectSubtypeSupported(Subtype: TPdfAnnotationSubtype): Boolean;
| Subtype | TPdfAnnotationSubtype. Проверяемый подтип: anUnknown, anText, anLink, anFreeText, anLine, anSquare, anCircle, anPolygon, anPolyLine, anHighlight, anUnderline, anSquiggly, anStrikeout, anStamp, anCaret, anInk, anPopup, anFileAttachment, anSound, anMovie, anWidget, anScreen, anPrinterMark, anTrapNet, anWaterMark, anThreed, anRichMedia, anXfaWidget, anRedact |
| Result | Boolean. True, когда модуль поддерживает этот подтип для обработки на уровне объектов |
Спутник IsAnnotationSubtypeSupported на уровне объектов. Тот вызов сообщает, может ли подтип быть создан через CreateAnnotation, а этот спрашивает у модуля, поддерживает ли он обработку объектов данного подтипа — запрос, управляющий API объектов-аннотаций вроде AnnotationObjectInfo и AnnotationObjectCount, которые читают и редактируют объекты страницы, нарисованные внутри аннотации
Ответ различается между сборками PDFium. Предварительная проверка позволяет приложению заранее включить или отключить функцию редактирования на уровне объектов, а не падать позже на реальном вызове
Когда загруженная сборка PDFium не экспортирует нативный запрос (FPDFAnnot_IsObjectSupportedSubtype), результат равен False, что удерживает вызывающий код на консервативной стороне
if Pdf1.IsAnnotationObjectSubtypeSupported(anStamp) then
BtnEditStampObjects.Enabled := True
else
// no object-level stamp editing on this PDFium build
BtnEditStampObjects.Enabled := False;