| // Copyright 2016 PDFium Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | |
| #ifndef PUBLIC_FPDF_STRUCTTREE_H_ | |
| #define PUBLIC_FPDF_STRUCTTREE_H_ | |
| // clang-format off | |
| // NOLINTNEXTLINE(build/include) | |
| #include "fpdfview.h" | |
| #ifdef __cplusplus | |
| extern "C" { | |
| #endif | |
| // Function: FPDF_StructTree_GetForPage | |
| // Get the structure tree for a page. | |
| // Parameters: | |
| // page - Handle to the page, as returned by FPDF_LoadPage(). | |
| // Return value: | |
| // A handle to the structure tree or NULL on error. | |
| FPDF_EXPORT FPDF_STRUCTTREE FPDF_CALLCONV | |
| FPDF_StructTree_GetForPage(FPDF_PAGE page); | |
| // Function: FPDF_StructTree_Close | |
| // Release a resource allocated by FPDF_StructTree_GetForPage(). | |
| // Parameters: | |
| // struct_tree - Handle to the structure tree, as returned by | |
| // FPDF_StructTree_LoadPage(). | |
| // Return value: | |
| // None. | |
| FPDF_EXPORT void FPDF_CALLCONV | |
| FPDF_StructTree_Close(FPDF_STRUCTTREE struct_tree); | |
| // Function: FPDF_StructTree_CountChildren | |
| // Count the number of children for the structure tree. | |
| // Parameters: | |
| // struct_tree - Handle to the structure tree, as returned by | |
| // FPDF_StructTree_LoadPage(). | |
| // Return value: | |
| // The number of children, or -1 on error. | |
| FPDF_EXPORT int FPDF_CALLCONV | |
| FPDF_StructTree_CountChildren(FPDF_STRUCTTREE struct_tree); | |
| // Function: FPDF_StructTree_GetChildAtIndex | |
| // Get a child in the structure tree. | |
| // Parameters: | |
| // struct_tree - Handle to the structure tree, as returned by | |
| // FPDF_StructTree_LoadPage(). | |
| // index - The index for the child, 0-based. | |
| // Return value: | |
| // The child at the n-th index or NULL on error. | |
| FPDF_EXPORT FPDF_STRUCTELEMENT FPDF_CALLCONV | |
| FPDF_StructTree_GetChildAtIndex(FPDF_STRUCTTREE struct_tree, int index); | |
| // Function: FPDF_StructElement_GetAltText | |
| // Get the alt text for a given element. | |
| // Parameters: | |
| // struct_element - Handle to the struct element. | |
| // buffer - A buffer for output the alt text. May be NULL. | |
| // buflen - The length of the buffer, in bytes. May be 0. | |
| // Return value: | |
| // The number of bytes in the title, including the terminating NUL | |
| // character. The number of bytes is returned regardless of the | |
| // |buffer| and |buflen| parameters. | |
| // Comments: | |
| // Regardless of the platform, the |buffer| is always in UTF-16LE | |
| // encoding. The string is terminated by a UTF16 NUL character. If | |
| // |buflen| is less than the required length, or |buffer| is NULL, | |
| // |buffer| will not be modified. | |
| FPDF_EXPORT unsigned long FPDF_CALLCONV | |
| FPDF_StructElement_GetAltText(FPDF_STRUCTELEMENT struct_element, | |
| void* buffer, | |
| unsigned long buflen); | |
| // Experimental API. | |
| // Function: FPDF_StructElement_GetID | |
| // Get the ID for a given element. | |
| // Parameters: | |
| // struct_element - Handle to the struct element. | |
| // buffer - A buffer for output the ID string. May be NULL. | |
| // buflen - The length of the buffer, in bytes. May be 0. | |
| // Return value: | |
| // The number of bytes in the ID string, including the terminating NUL | |
| // character. The number of bytes is returned regardless of the | |
| // |buffer| and |buflen| parameters. | |
| // Comments: | |
| // Regardless of the platform, the |buffer| is always in UTF-16LE | |
| // encoding. The string is terminated by a UTF16 NUL character. If | |
| // |buflen| is less than the required length, or |buffer| is NULL, | |
| // |buffer| will not be modified. | |
| FPDF_EXPORT unsigned long FPDF_CALLCONV | |
| FPDF_StructElement_GetID(FPDF_STRUCTELEMENT struct_element, | |
| void* buffer, | |
| unsigned long buflen); | |
| // Experimental API. | |
| // Function: FPDF_StructElement_GetLang | |
| // Get the case-insensitive IETF BCP 47 language code for an element. | |
| // Parameters: | |
| // struct_element - Handle to the struct element. | |
| // buffer - A buffer for output the lang string. May be NULL. | |
| // buflen - The length of the buffer, in bytes. May be 0. | |
| // Return value: | |
| // The number of bytes in the ID string, including the terminating NUL | |
| // character. The number of bytes is returned regardless of the | |
| // |buffer| and |buflen| parameters. | |
| // Comments: | |
| // Regardless of the platform, the |buffer| is always in UTF-16LE | |
| // encoding. The string is terminated by a UTF16 NUL character. If | |
| // |buflen| is less than the required length, or |buffer| is NULL, | |
| // |buffer| will not be modified. | |
| FPDF_EXPORT unsigned long FPDF_CALLCONV | |
| FPDF_StructElement_GetLang(FPDF_STRUCTELEMENT struct_element, | |
| void* buffer, | |
| unsigned long buflen); | |
| // Experimental API. | |
| // Function: FPDF_StructElement_GetStringAttribute | |
| // Get a struct element attribute of type "name" or "string". | |
| // Parameters: | |
| // struct_element - Handle to the struct element. | |
| // attr_name - The name of the attribute to retrieve. | |
| // buffer - A buffer for output. May be NULL. | |
| // buflen - The length of the buffer, in bytes. May be 0. | |
| // Return value: | |
| // The number of bytes in the attribute value, including the | |
| // terminating NUL character. The number of bytes is returned | |
| // regardless of the |buffer| and |buflen| parameters. | |
| // Comments: | |
| // Regardless of the platform, the |buffer| is always in UTF-16LE | |
| // encoding. The string is terminated by a UTF16 NUL character. If | |
| // |buflen| is less than the required length, or |buffer| is NULL, | |
| // |buffer| will not be modified. | |
| FPDF_EXPORT unsigned long FPDF_CALLCONV | |
| FPDF_StructElement_GetStringAttribute(FPDF_STRUCTELEMENT struct_element, | |
| FPDF_BYTESTRING attr_name, | |
| void* buffer, | |
| unsigned long buflen); | |
| // Function: FPDF_StructElement_GetMarkedContentID | |
| // Get the marked content ID for a given element. | |
| // Parameters: | |
| // struct_element - Handle to the struct element. | |
| // Return value: | |
| // The marked content ID of the element. If no ID exists, returns | |
| // -1. | |
| FPDF_EXPORT int FPDF_CALLCONV | |
| FPDF_StructElement_GetMarkedContentID(FPDF_STRUCTELEMENT struct_element); | |
| // Function: FPDF_StructElement_GetType | |
| // Get the type (/S) for a given element. | |
| // Parameters: | |
| // struct_element - Handle to the struct element. | |
| // buffer - A buffer for output. May be NULL. | |
| // buflen - The length of the buffer, in bytes. May be 0. | |
| // Return value: | |
| // The number of bytes in the type, including the terminating NUL | |
| // character. The number of bytes is returned regardless of the | |
| // |buffer| and |buflen| parameters. | |
| // Comments: | |
| // Regardless of the platform, the |buffer| is always in UTF-16LE | |
| // encoding. The string is terminated by a UTF16 NUL character. If | |
| // |buflen| is less than the required length, or |buffer| is NULL, | |
| // |buffer| will not be modified. | |
| FPDF_EXPORT unsigned long FPDF_CALLCONV | |
| FPDF_StructElement_GetType(FPDF_STRUCTELEMENT struct_element, | |
| void* buffer, | |
| unsigned long buflen); | |
| // Function: FPDF_StructElement_GetTitle | |
| // Get the title (/T) for a given element. | |
| // Parameters: | |
| // struct_element - Handle to the struct element. | |
| // buffer - A buffer for output. May be NULL. | |
| // buflen - The length of the buffer, in bytes. May be 0. | |
| // Return value: | |
| // The number of bytes in the title, including the terminating NUL | |
| // character. The number of bytes is returned regardless of the | |
| // |buffer| and |buflen| parameters. | |
| // Comments: | |
| // Regardless of the platform, the |buffer| is always in UTF-16LE | |
| // encoding. The string is terminated by a UTF16 NUL character. If | |
| // |buflen| is less than the required length, or |buffer| is NULL, | |
| // |buffer| will not be modified. | |
| FPDF_EXPORT unsigned long FPDF_CALLCONV | |
| FPDF_StructElement_GetTitle(FPDF_STRUCTELEMENT struct_element, | |
| void* buffer, | |
| unsigned long buflen); | |
| // Function: FPDF_StructElement_CountChildren | |
| // Count the number of children for the structure element. | |
| // Parameters: | |
| // struct_element - Handle to the struct element. | |
| // Return value: | |
| // The number of children, or -1 on error. | |
| FPDF_EXPORT int FPDF_CALLCONV | |
| FPDF_StructElement_CountChildren(FPDF_STRUCTELEMENT struct_element); | |
| // Function: FPDF_StructElement_GetChildAtIndex | |
| // Get a child in the structure element. | |
| // Parameters: | |
| // struct_tree - Handle to the struct element. | |
| // index - The index for the child, 0-based. | |
| // Return value: | |
| // The child at the n-th index or NULL on error. | |
| // Comments: | |
| // If the child exists but is not an element, then this function will | |
| // return NULL. This will also return NULL for out of bounds indices. | |
| FPDF_EXPORT FPDF_STRUCTELEMENT FPDF_CALLCONV | |
| FPDF_StructElement_GetChildAtIndex(FPDF_STRUCTELEMENT struct_element, | |
| int index); | |
| #ifdef __cplusplus | |
| } // extern "C" | |
| #endif | |
| #endif // PUBLIC_FPDF_STRUCTTREE_H_ |