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 で作成できるかを報告するのに対し、こちらはモジュールがそのサブタイプのオブジェクトの処理をサポートするかを問い合わせます。AnnotationObjectInfo や AnnotationObjectCount のような、注釈の内側に描かれたページオブジェクトを読み取り・編集する注釈オブジェクト API の可否を決める問い合わせです
答えは 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;