| /* poppler-structure-element.h: glib interface to poppler |
| * |
| * Copyright (C) 2013 Igalia S.L. |
| * |
| * This program is free software; you can redistribute it and/or modify |
| * it under the terms of the GNU General Public License as published by |
| * the Free Software Foundation; either version 2, or (at your option) |
| * any later version. |
| * |
| * This program is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| * GNU General Public License for more details. |
| * |
| * You should have received a copy of the GNU General Public License |
| * along with this program; if not, write to the Free Software |
| * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. |
| */ |
| |
| #ifndef __POPPLER_STRUCTURE_ELEMENT_H__ |
| #define __POPPLER_STRUCTURE_ELEMENT_H__ |
| |
| #include <glib-object.h> |
| #include "poppler.h" |
| |
| G_BEGIN_DECLS |
| |
| #define POPPLER_TYPE_STRUCTURE_ELEMENT (poppler_structure_element_get_type ()) |
| #define POPPLER_STRUCTURE_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), POPPLER_TYPE_STRUCTURE_ELEMENT, PopplerStructureElement)) |
| #define POPPLER_IS_STRUCTURE_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), POPPLER_TYPE_STRUCTURE_ELEMENT)) |
| |
| /** |
| * PopplerStructureElementKind: |
| */ |
| typedef enum { |
| POPPLER_STRUCTURE_ELEMENT_CONTENT, |
| POPPLER_STRUCTURE_ELEMENT_OBJECT_REFERENCE, |
| POPPLER_STRUCTURE_ELEMENT_DOCUMENT, |
| POPPLER_STRUCTURE_ELEMENT_PART, |
| POPPLER_STRUCTURE_ELEMENT_ARTICLE, |
| POPPLER_STRUCTURE_ELEMENT_SECTION, |
| POPPLER_STRUCTURE_ELEMENT_DIV, |
| POPPLER_STRUCTURE_ELEMENT_SPAN, |
| POPPLER_STRUCTURE_ELEMENT_QUOTE, |
| POPPLER_STRUCTURE_ELEMENT_NOTE, |
| POPPLER_STRUCTURE_ELEMENT_REFERENCE, |
| POPPLER_STRUCTURE_ELEMENT_BIBENTRY, |
| POPPLER_STRUCTURE_ELEMENT_CODE, |
| POPPLER_STRUCTURE_ELEMENT_LINK, |
| POPPLER_STRUCTURE_ELEMENT_ANNOT, |
| POPPLER_STRUCTURE_ELEMENT_BLOCKQUOTE, |
| POPPLER_STRUCTURE_ELEMENT_CAPTION, |
| POPPLER_STRUCTURE_ELEMENT_NONSTRUCT, |
| POPPLER_STRUCTURE_ELEMENT_TOC, |
| POPPLER_STRUCTURE_ELEMENT_TOC_ITEM, |
| POPPLER_STRUCTURE_ELEMENT_INDEX, |
| POPPLER_STRUCTURE_ELEMENT_PRIVATE, |
| POPPLER_STRUCTURE_ELEMENT_PARAGRAPH, |
| POPPLER_STRUCTURE_ELEMENT_HEADING, |
| POPPLER_STRUCTURE_ELEMENT_HEADING_1, |
| POPPLER_STRUCTURE_ELEMENT_HEADING_2, |
| POPPLER_STRUCTURE_ELEMENT_HEADING_3, |
| POPPLER_STRUCTURE_ELEMENT_HEADING_4, |
| POPPLER_STRUCTURE_ELEMENT_HEADING_5, |
| POPPLER_STRUCTURE_ELEMENT_HEADING_6, |
| POPPLER_STRUCTURE_ELEMENT_LIST, |
| POPPLER_STRUCTURE_ELEMENT_LIST_ITEM, |
| POPPLER_STRUCTURE_ELEMENT_LIST_LABEL, |
| POPPLER_STRUCTURE_ELEMENT_LIST_BODY, |
| POPPLER_STRUCTURE_ELEMENT_TABLE, |
| POPPLER_STRUCTURE_ELEMENT_TABLE_ROW, |
| POPPLER_STRUCTURE_ELEMENT_TABLE_HEADING, |
| POPPLER_STRUCTURE_ELEMENT_TABLE_DATA, |
| POPPLER_STRUCTURE_ELEMENT_TABLE_HEADER, |
| POPPLER_STRUCTURE_ELEMENT_TABLE_FOOTER, |
| POPPLER_STRUCTURE_ELEMENT_TABLE_BODY, |
| POPPLER_STRUCTURE_ELEMENT_RUBY, |
| POPPLER_STRUCTURE_ELEMENT_RUBY_BASE_TEXT, |
| POPPLER_STRUCTURE_ELEMENT_RUBY_ANNOT_TEXT, |
| POPPLER_STRUCTURE_ELEMENT_RUBY_PUNCTUATION, |
| POPPLER_STRUCTURE_ELEMENT_WARICHU, |
| POPPLER_STRUCTURE_ELEMENT_WARICHU_TEXT, |
| POPPLER_STRUCTURE_ELEMENT_WARICHU_PUNCTUATION, |
| POPPLER_STRUCTURE_ELEMENT_FIGURE, |
| POPPLER_STRUCTURE_ELEMENT_FORMULA, |
| POPPLER_STRUCTURE_ELEMENT_FORM, |
| } PopplerStructureElementKind; |
| |
| /** |
| * PopplerStructureGetTextFlags: |
| * @POPPLER_STRUCTURE_GET_TEXT_NONE: No flags. |
| * @POPPLER_STRUCTURE_GET_TEXT_RECURSIVE: For non-leaf, non-content |
| * elements, recursively obtain the text from all the elements |
| * enclosed in the subtree. |
| */ |
| typedef enum { |
| POPPLER_STRUCTURE_GET_TEXT_NONE = 0, |
| POPPLER_STRUCTURE_GET_TEXT_RECURSIVE = (1 << 0), |
| } PopplerStructureGetTextFlags; |
| |
| /** |
| * PopplerStructurePlacement: |
| */ |
| typedef enum { |
| POPPLER_STRUCTURE_PLACEMENT_BLOCK, |
| POPPLER_STRUCTURE_PLACEMENT_INLINE, |
| POPPLER_STRUCTURE_PLACEMENT_BEFORE, |
| POPPLER_STRUCTURE_PLACEMENT_START, |
| POPPLER_STRUCTURE_PLACEMENT_END, |
| } PopplerStructurePlacement; |
| |
| /** |
| * PopplerStructureWritingMode: |
| */ |
| typedef enum { |
| POPPLER_STRUCTURE_WRITING_MODE_LR_TB, |
| POPPLER_STRUCTURE_WRITING_MODE_RL_TB, |
| POPPLER_STRUCTURE_WRITING_MODE_TB_RL, |
| } PopplerStructureWritingMode; |
| |
| /** |
| * PopplerStructureBorderStyle: |
| */ |
| typedef enum { |
| POPPLER_STRUCTURE_BORDER_STYLE_NONE, |
| POPPLER_STRUCTURE_BORDER_STYLE_HIDDEN, |
| POPPLER_STRUCTURE_BORDER_STYLE_DOTTED, |
| POPPLER_STRUCTURE_BORDER_STYLE_DASHED, |
| POPPLER_STRUCTURE_BORDER_STYLE_SOLID, |
| POPPLER_STRUCTURE_BORDER_STYLE_DOUBLE, |
| POPPLER_STRUCTURE_BORDER_STYLE_GROOVE, |
| POPPLER_STRUCTURE_BORDER_STYLE_INSET, |
| POPPLER_STRUCTURE_BORDER_STYLE_OUTSET, |
| } PopplerStructureBorderStyle; |
| |
| /** |
| * PopplerStructureTextAlign: |
| */ |
| typedef enum { |
| POPPLER_STRUCTURE_TEXT_ALIGN_START, |
| POPPLER_STRUCTURE_TEXT_ALIGN_CENTER, |
| POPPLER_STRUCTURE_TEXT_ALIGN_END, |
| POPPLER_STRUCTURE_TEXT_ALIGN_JUSTIFY, |
| } PopplerStructureTextAlign; |
| |
| /** |
| * PopplerStructureBlockAlign: |
| */ |
| typedef enum { |
| POPPLER_STRUCTURE_BLOCK_ALIGN_BEFORE, |
| POPPLER_STRUCTURE_BLOCK_ALIGN_MIDDLE, |
| POPPLER_STRUCTURE_BLOCK_ALIGN_AFTER, |
| POPPLER_STRUCTURE_BLOCK_ALIGN_JUSTIFY, |
| } PopplerStructureBlockAlign; |
| |
| /** |
| * PopplerStructureInlineAlign: |
| */ |
| typedef enum { |
| POPPLER_STRUCTURE_INLINE_ALIGN_START, |
| POPPLER_STRUCTURE_INLINE_ALIGN_CENTER, |
| POPPLER_STRUCTURE_INLINE_ALIGN_END, |
| } PopplerStructureInlineAlign; |
| |
| /** |
| * PopplerStructureTextDecoration: |
| */ |
| typedef enum { |
| POPPLER_STRUCTURE_TEXT_DECORATION_NONE, |
| POPPLER_STRUCTURE_TEXT_DECORATION_UNDERLINE, |
| POPPLER_STRUCTURE_TEXT_DECORATION_OVERLINE, |
| POPPLER_STRUCTURE_TEXT_DECORATION_LINETHROUGH, |
| } PopplerStructureTextDecoration; |
| |
| /** |
| * PopplerStructureRubyAlign: |
| */ |
| typedef enum |
| { |
| POPPLER_STRUCTURE_RUBY_ALIGN_START, |
| POPPLER_STRUCTURE_RUBY_ALIGN_CENTER, |
| POPPLER_STRUCTURE_RUBY_ALIGN_END, |
| POPPLER_STRUCTURE_RUBY_ALIGN_JUSTIFY, |
| POPPLER_STRUCTURE_RUBY_ALIGN_DISTRIBUTE, |
| } PopplerStructureRubyAlign; |
| |
| /** |
| * PopplerStructureRubyPosition: |
| */ |
| typedef enum { |
| POPPLER_STRUCTURE_RUBY_POSITION_BEFORE, |
| POPPLER_STRUCTURE_RUBY_POSITION_AFTER, |
| POPPLER_STRUCTURE_RUBY_POSITION_WARICHU, |
| POPPLER_STRUCTURE_RUBY_POSITION_INLINE, |
| } PopplerStructureRubyPosition; |
| |
| /** |
| * PopplerStructureGlyphOrientation: |
| */ |
| typedef enum { |
| POPPLER_STRUCTURE_GLYPH_ORIENTATION_AUTO, |
| POPPLER_STRUCTURE_GLYPH_ORIENTATION_0 = POPPLER_STRUCTURE_GLYPH_ORIENTATION_AUTO, |
| POPPLER_STRUCTURE_GLYPH_ORIENTATION_90, |
| POPPLER_STRUCTURE_GLYPH_ORIENTATION_180, |
| POPPLER_STRUCTURE_GLYPH_ORIENTATION_270, |
| } PopplerStructureGlyphOrientation; |
| |
| /** |
| * PopplerStructureListNumbering: |
| */ |
| typedef enum { |
| POPPLER_STRUCTURE_LIST_NUMBERING_NONE, |
| POPPLER_STRUCTURE_LIST_NUMBERING_DISC, |
| POPPLER_STRUCTURE_LIST_NUMBERING_CIRCLE, |
| POPPLER_STRUCTURE_LIST_NUMBERING_SQUARE, |
| POPPLER_STRUCTURE_LIST_NUMBERING_DECIMAL, |
| POPPLER_STRUCTURE_LIST_NUMBERING_UPPER_ROMAN, |
| POPPLER_STRUCTURE_LIST_NUMBERING_LOWER_ROMAN, |
| POPPLER_STRUCTURE_LIST_NUMBERING_UPPER_ALPHA, |
| POPPLER_STRUCTURE_LIST_NUMBERING_LOWER_ALPHA, |
| } PopplerStructureListNumbering; |
| |
| /** |
| * PopplerStructureFormRole: |
| */ |
| typedef enum { |
| POPPLER_STRUCTURE_FORM_ROLE_UNDEFINED, |
| POPPLER_STRUCTURE_FORM_ROLE_RADIO_BUTTON, |
| POPPLER_STRUCTURE_FORM_ROLE_PUSH_BUTTON, |
| POPPLER_STRUCTURE_FORM_ROLE_TEXT_VALUE, |
| POPPLER_STRUCTURE_FORM_ROLE_CHECKBOX, |
| } PopplerStructureFormRole; |
| |
| /** |
| * PopplerStructureFormState: |
| */ |
| typedef enum { |
| POPPLER_STRUCTURE_FORM_STATE_ON, |
| POPPLER_STRUCTURE_FORM_STATE_OFF, |
| POPPLER_STRUCTURE_FORM_STATE_NEUTRAL, |
| } PopplerStructureFormState; |
| |
| /** |
| * PopplerStructureTableScope: |
| */ |
| typedef enum { |
| POPPLER_STRUCTURE_TABLE_SCOPE_ROW, |
| POPPLER_STRUCTURE_TABLE_SCOPE_COLUMN, |
| POPPLER_STRUCTURE_TABLE_SCOPE_BOTH, |
| } PopplerStructureTableScope; |
| |
| |
| GType poppler_structure_element_get_type (void) G_GNUC_CONST; |
| PopplerStructureElementKind poppler_structure_element_get_kind (PopplerStructureElement *poppler_structure_element); |
| gint poppler_structure_element_get_page (PopplerStructureElement *poppler_structure_element); |
| gboolean poppler_structure_element_is_content (PopplerStructureElement *poppler_structure_element); |
| gboolean poppler_structure_element_is_inline (PopplerStructureElement *poppler_structure_element); |
| gboolean poppler_structure_element_is_block (PopplerStructureElement *poppler_structure_element); |
| gboolean poppler_structure_element_is_grouping (PopplerStructureElement *poppler_structure_element); |
| gchar *poppler_structure_element_get_id (PopplerStructureElement *poppler_structure_element); |
| gchar *poppler_structure_element_get_title (PopplerStructureElement *poppler_structure_element); |
| gchar *poppler_structure_element_get_abbreviation (PopplerStructureElement *poppler_structure_element); |
| gchar *poppler_structure_element_get_language (PopplerStructureElement *poppler_structure_element); |
| gchar *poppler_structure_element_get_text (PopplerStructureElement *poppler_structure_element, |
| PopplerStructureGetTextFlags flags); |
| gchar *poppler_structure_element_get_alt_text (PopplerStructureElement *poppler_structure_element); |
| gchar *poppler_structure_element_get_actual_text (PopplerStructureElement *poppler_structure_element); |
| PopplerTextSpan **poppler_structure_element_get_text_spans (PopplerStructureElement *poppler_structure_element, |
| guint *n_text_spans); |
| |
| PopplerStructurePlacement poppler_structure_element_get_placement (PopplerStructureElement *poppler_structure_element); |
| PopplerStructureWritingMode poppler_structure_element_get_writing_mode (PopplerStructureElement *poppler_structure_element); |
| gboolean poppler_structure_element_get_background_color (PopplerStructureElement *poppler_structure_element, |
| PopplerColor *color); |
| gboolean poppler_structure_element_get_border_color (PopplerStructureElement *poppler_structure_element, |
| PopplerColor *colors); |
| void poppler_structure_element_get_border_style (PopplerStructureElement *poppler_structure_element, |
| PopplerStructureBorderStyle *border_styles); |
| gboolean poppler_structure_element_get_border_thickness (PopplerStructureElement *poppler_structure_element, |
| gdouble *border_thicknesses); |
| void poppler_structure_element_get_padding (PopplerStructureElement *poppler_structure_element, |
| gdouble *paddings); |
| gboolean poppler_structure_element_get_color (PopplerStructureElement *poppler_structure_element, |
| PopplerColor *color); |
| |
| gdouble poppler_structure_element_get_space_before (PopplerStructureElement *poppler_structure_element); |
| gdouble poppler_structure_element_get_space_after (PopplerStructureElement *poppler_structure_element); |
| gdouble poppler_structure_element_get_start_indent (PopplerStructureElement *poppler_structure_element); |
| gdouble poppler_structure_element_get_end_indent (PopplerStructureElement *poppler_structure_element); |
| gdouble poppler_structure_element_get_text_indent (PopplerStructureElement *poppler_structure_element); |
| PopplerStructureTextAlign poppler_structure_element_get_text_align (PopplerStructureElement *poppler_structure_element); |
| gboolean poppler_structure_element_get_bounding_box (PopplerStructureElement *poppler_structure_element, |
| PopplerRectangle *bounding_box); |
| gdouble poppler_structure_element_get_width (PopplerStructureElement *poppler_structure_element); |
| gdouble poppler_structure_element_get_height (PopplerStructureElement *poppler_structure_element); |
| PopplerStructureBlockAlign poppler_structure_element_get_block_align (PopplerStructureElement *poppler_structure_element); |
| PopplerStructureInlineAlign poppler_structure_element_get_inline_align (PopplerStructureElement *poppler_structure_element); |
| void poppler_structure_element_get_table_border_style (PopplerStructureElement *poppler_structure_element, |
| PopplerStructureBorderStyle *border_styles); |
| void poppler_structure_element_get_table_padding (PopplerStructureElement *poppler_structure_element, |
| gdouble *paddings); |
| |
| gdouble poppler_structure_element_get_baseline_shift (PopplerStructureElement *poppler_structure_element); |
| gdouble poppler_structure_element_get_line_height (PopplerStructureElement *poppler_structure_element); |
| gboolean poppler_structure_element_get_text_decoration_color |
| (PopplerStructureElement *poppler_structure_element, |
| PopplerColor *color); |
| gdouble poppler_structure_element_get_text_decoration_thickness |
| (PopplerStructureElement *poppler_structure_element); |
| PopplerStructureTextDecoration poppler_structure_element_get_text_decoration_type |
| (PopplerStructureElement *poppler_structure_element); |
| PopplerStructureRubyAlign poppler_structure_element_get_ruby_align (PopplerStructureElement *poppler_structure_element); |
| PopplerStructureRubyPosition poppler_structure_element_get_ruby_position (PopplerStructureElement *poppler_structure_element); |
| PopplerStructureGlyphOrientation poppler_structure_element_get_glyph_orientation (PopplerStructureElement *poppler_structure_element); |
| |
| guint poppler_structure_element_get_column_count (PopplerStructureElement *poppler_structure_element); |
| gdouble *poppler_structure_element_get_column_gaps (PopplerStructureElement *poppler_structure_element, |
| guint *n_values); |
| gdouble *poppler_structure_element_get_column_widths (PopplerStructureElement *poppler_structure_element, |
| guint *n_values); |
| |
| PopplerStructureListNumbering poppler_structure_element_get_list_numbering (PopplerStructureElement *poppler_structure_element); |
| |
| PopplerStructureFormRole poppler_structure_element_get_form_role (PopplerStructureElement *poppler_structure_element); |
| PopplerStructureFormState poppler_structure_element_get_form_state (PopplerStructureElement *poppler_structure_element); |
| gchar *poppler_structure_element_get_form_description (PopplerStructureElement *poppler_structure_element); |
| |
| guint poppler_structure_element_get_table_row_span (PopplerStructureElement *poppler_structure_element); |
| guint poppler_structure_element_get_table_column_span (PopplerStructureElement *poppler_structure_element); |
| gchar **poppler_structure_element_get_table_headers (PopplerStructureElement *poppler_structure_element); |
| PopplerStructureTableScope poppler_structure_element_get_table_scope (PopplerStructureElement *poppler_structure_element); |
| gchar *poppler_structure_element_get_table_summary (PopplerStructureElement *poppler_structure_element); |
| |
| #define POPPLER_TYPE_STRUCTURE_ELEMENT_ITER (poppler_structure_element_iter_get_type ()) |
| GType poppler_structure_element_iter_get_type (void) G_GNUC_CONST; |
| PopplerStructureElementIter *poppler_structure_element_iter_new (PopplerDocument *poppler_document); |
| PopplerStructureElementIter *poppler_structure_element_iter_get_child (PopplerStructureElementIter *parent); |
| PopplerStructureElementIter *poppler_structure_element_iter_copy (PopplerStructureElementIter *iter); |
| PopplerStructureElement *poppler_structure_element_iter_get_element (PopplerStructureElementIter *iter); |
| gboolean poppler_structure_element_iter_next (PopplerStructureElementIter *iter); |
| void poppler_structure_element_iter_free (PopplerStructureElementIter *iter); |
| |
| #define POPPLER_TYPE_TEXT_SPAN (poppler_text_span_get_type ()) |
| GType poppler_text_span_get_type (void) G_GNUC_CONST; |
| PopplerTextSpan *poppler_text_span_copy (PopplerTextSpan *poppler_text_span); |
| void poppler_text_span_free (PopplerTextSpan *poppler_text_span); |
| gboolean poppler_text_span_is_fixed_width_font (PopplerTextSpan *poppler_text_span); |
| gboolean poppler_text_span_is_serif_font (PopplerTextSpan *poppler_text_span); |
| gboolean poppler_text_span_is_bold_font (PopplerTextSpan *poppler_text_span); |
| void poppler_text_span_get_color (PopplerTextSpan *poppler_text_span, |
| PopplerColor *color); |
| const gchar *poppler_text_span_get_text (PopplerTextSpan *poppler_text_span); |
| const gchar *poppler_text_span_get_font_name (PopplerTextSpan *poppler_text_span); |
| |
| G_END_DECLS |
| |
| #endif /* !__POPPLER_STRUCTURE_ELEMENT_H__ */ |