Home | History | Annotate | Download | only in public
      1 // Copyright 2016 PDFium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
      6 
      7 #ifndef PUBLIC_FPDF_STRUCTTREE_H_
      8 #define PUBLIC_FPDF_STRUCTTREE_H_
      9 
     10 // NOLINTNEXTLINE(build/include)
     11 #include "fpdfview.h"
     12 
     13 #ifdef __cplusplus
     14 extern "C" {
     15 #endif
     16 
     17 // Function: FPDF_StructTree_GetForPage
     18 //          Get the structure tree for a page.
     19 // Parameters:
     20 //          page        -   Handle to the page. Returned by FPDF_LoadPage
     21 //          function.
     22 // Return value:
     23 //          A handle to the structure tree or NULL on error.
     24 FPDF_EXPORT FPDF_STRUCTTREE FPDF_CALLCONV
     25 FPDF_StructTree_GetForPage(FPDF_PAGE page);
     26 
     27 // Function: FPDF_StructTree_Close
     28 //          Release the resource allocate by FPDF_StructTree_GetForPage.
     29 // Parameters:
     30 //          struct_tree -   Handle to the struct tree. Returned by
     31 //          FPDF_StructTree_LoadPage function.
     32 // Return value:
     33 //          NULL
     34 FPDF_EXPORT void FPDF_CALLCONV
     35 FPDF_StructTree_Close(FPDF_STRUCTTREE struct_tree);
     36 
     37 // Function: FPDF_StructTree_CountChildren
     38 //          Count the number of children for the structure tree.
     39 // Parameters:
     40 //          struct_tree -   Handle to the struct tree. Returned by
     41 //          FPDF_StructTree_LoadPage function.
     42 // Return value:
     43 //          The number of children, or -1 on error.
     44 FPDF_EXPORT int FPDF_CALLCONV
     45 FPDF_StructTree_CountChildren(FPDF_STRUCTTREE struct_tree);
     46 
     47 // Function: FPDF_StructTree_GetChildAtIndex
     48 //          Get a child in the structure tree.
     49 // Parameters:
     50 //          struct_tree -   Handle to the struct tree. Returned by
     51 //          FPDF_StructTree_LoadPage function.
     52 //          index       -   The index for the child, 0-based.
     53 // Return value:
     54 //          The child at the n-th index or NULL on error.
     55 FPDF_EXPORT FPDF_STRUCTELEMENT FPDF_CALLCONV
     56 FPDF_StructTree_GetChildAtIndex(FPDF_STRUCTTREE struct_tree, int index);
     57 
     58 // Function: FPDF_StructElement_GetAltText
     59 //          Get the alt text for a given element.
     60 // Parameters:
     61 //          struct_element -   Handle to the struct element.
     62 //          buffer         -   A buffer for output the alt text. May be NULL.
     63 //          buflen         -   The length of the buffer, in bytes. May be 0.
     64 // Return value:
     65 //          The number of bytes in the title, including the terminating NUL
     66 //          character. The number of bytes is returned regardless of the
     67 //          |buffer| and |buflen| parameters.
     68 // Comments:
     69 //          Regardless of the platform, the |buffer| is always in UTF-16LE
     70 //          encoding. The string is terminated by a UTF16 NUL character. If
     71 //          |buflen| is less than the required length, or |buffer| is NULL,
     72 //          |buffer| will not be modified.
     73 FPDF_EXPORT unsigned long FPDF_CALLCONV
     74 FPDF_StructElement_GetAltText(FPDF_STRUCTELEMENT struct_element,
     75                               void* buffer,
     76                               unsigned long buflen);
     77 
     78 // Function: FPDF_StructElement_GetMarkedContentID
     79 //          Get the marked content ID for a given element.
     80 // Parameters:
     81 //          struct_element -   Handle to the struct element.
     82 // Return value:
     83 //          The marked content ID of the element. If no ID exists, returns
     84 //          -1.
     85 FPDF_EXPORT int FPDF_CALLCONV
     86 FPDF_StructElement_GetMarkedContentID(FPDF_STRUCTELEMENT struct_element);
     87 
     88 // Function: FPDF_StructElement_GetType
     89 //           Get the type (/S) for a given element.
     90 // Parameters:
     91 //           struct_element - Handle to the struct element.
     92 //           buffer        - A buffer for output. May be NULL.
     93 //           buflen        - The length of the buffer, in bytes. May be 0.
     94 // Return value:
     95 //           The number of bytes in the type, including the terminating NUL
     96 //           character. The number of bytes is returned regardless of the
     97 //           |buffer| and |buflen| parameters.
     98 // Comments:
     99 //           Regardless of the platform, the |buffer| is always in UTF-16LE
    100 //           encoding. The string is terminated by a UTF16 NUL character. If
    101 //           |buflen| is less than the required length, or |buffer| is NULL,
    102 //           |buffer| will not be modified.
    103 FPDF_EXPORT unsigned long FPDF_CALLCONV
    104 FPDF_StructElement_GetType(FPDF_STRUCTELEMENT struct_element,
    105                            void* buffer,
    106                            unsigned long buflen);
    107 
    108 // Function: FPDF_StructElement_GetTitle
    109 //           Get the title (/T) for a given element.
    110 // Parameters:
    111 //           struct_element - Handle to the struct element.
    112 //           buffer         - A buffer for output. May be NULL.
    113 //           buflen         - The length of the buffer, in bytes. May be 0.
    114 // Return value:
    115 //           The number of bytes in the title, including the terminating NUL
    116 //           character. The number of bytes is returned regardless of the
    117 //           |buffer| and |buflen| parameters.
    118 // Comments:
    119 //           Regardless of the platform, the |buffer| is always in UTF-16LE
    120 //           encoding. The string is terminated by a UTF16 NUL character. If
    121 //           |buflen| is less than the required length, or |buffer| is NULL,
    122 //           |buffer| will not be modified.
    123 FPDF_EXPORT unsigned long FPDF_CALLCONV
    124 FPDF_StructElement_GetTitle(FPDF_STRUCTELEMENT struct_element,
    125                             void* buffer,
    126                             unsigned long buflen);
    127 
    128 // Function: FPDF_StructElement_CountChildren
    129 //          Count the number of children for the structure element.
    130 // Parameters:
    131 //          struct_element -   Handle to the struct element.
    132 // Return value:
    133 //          The number of children, or -1 on error.
    134 FPDF_EXPORT int FPDF_CALLCONV
    135 FPDF_StructElement_CountChildren(FPDF_STRUCTELEMENT struct_element);
    136 
    137 // Function: FPDF_StructElement_GetChildAtIndex
    138 //          Get a child in the structure element.
    139 // Parameters:
    140 //          struct_tree -   Handle to the struct element.
    141 //          index       -   The index for the child, 0-based.
    142 // Return value:
    143 //          The child at the n-th index or NULL on error.
    144 // Comments:
    145 //          If the child exists but is not an element, then this function will
    146 //          return NULL. This will also return NULL for out of bounds indices.
    147 FPDF_EXPORT FPDF_STRUCTELEMENT FPDF_CALLCONV
    148 FPDF_StructElement_GetChildAtIndex(FPDF_STRUCTELEMENT struct_element,
    149                                    int index);
    150 
    151 #ifdef __cplusplus
    152 }  // extern "C"
    153 #endif
    154 
    155 #endif  // PUBLIC_FPDF_STRUCTTREE_H_
    156