23#ifndef MUPDF_FITZ_STRUCTURED_TEXT_H
24#define MUPDF_FITZ_STRUCTURED_TEXT_H
957 const char *datadir,
int (*progress)(
fz_context *,
void *,
int),
void *progress_arg);
960 const char *datadir,
int (*progress)(
fz_context *,
void *,
int),
void *progress_arg,
fz_options *options);
fz_structure
Definition device.h:194
#define FZ_DATA
Definition export.h:49
void HEAP_TYPE_NAME HEAP_CONTAINER_TYPE v
Definition heap-imp.h:51
struct fz_pool_array fz_pool_array
Definition pool.h:83
struct fz_pool fz_pool
Definition pool.h:34
Definition document.h:1080
Definition structured-text.h:1287
int combine_image
Definition structured-text.h:1291
int max_size
Definition structured-text.h:1289
Definition structured-text.h:55
fz_matrix inv_matrix
Definition structured-text.h:58
fz_layout_line * head
Definition structured-text.h:59
fz_matrix matrix
Definition structured-text.h:57
fz_pool * pool
Definition structured-text.h:56
fz_layout_char ** text_tailp
Definition structured-text.h:60
fz_layout_line ** tailp
Definition structured-text.h:59
Definition structured-text.h:40
float advance
Definition structured-text.h:41
float x
Definition structured-text.h:41
const char * p
Definition structured-text.h:42
struct fz_layout_char * next
Definition structured-text.h:43
Definition structured-text.h:47
fz_layout_char * text
Definition structured-text.h:50
struct fz_layout_line * next
Definition structured-text.h:51
float y
Definition structured-text.h:48
const char * p
Definition structured-text.h:49
float x
Definition structured-text.h:48
float font_size
Definition structured-text.h:48
Definition geometry.h:388
Definition geometry.h:187
Definition geometry.h:782
Definition geometry.h:231
Definition structured-text.h:1035
int end_seq
Definition structured-text.h:1039
fz_stext_position end
Definition structured-text.h:1038
fz_search_quad * quads
Definition structured-text.h:1037
int num_quads
Definition structured-text.h:1036
fz_stext_position begin
Definition structured-text.h:1038
int begin_seq
Definition structured-text.h:1039
Definition structured-text.h:1020
fz_quad quad
Definition structured-text.h:1022
int seq
Definition structured-text.h:1021
Definition structured-text.h:1046
fz_search_reason reason
Definition structured-text.h:1047
fz_search_match * match
Definition structured-text.h:1051
int seq_needed
Definition structured-text.h:1050
Definition structured-text.h:440
fz_stext_grid_positions * ys
Definition structured-text.h:449
struct fz_stext_block::@322304060277022073152002261250044130307126045012::@220256061145316264155376103332135153203121103165 t
fz_stext_line * first_line
Definition structured-text.h:445
fz_rect bbox
Definition structured-text.h:443
int index
Definition structured-text.h:447
fz_stext_struct * down
Definition structured-text.h:447
int type
Definition structured-text.h:441
fz_image * image
Definition structured-text.h:446
union fz_stext_block::@322304060277022073152002261250044130307126045012 u
uint32_t argb
Definition structured-text.h:448
fz_stext_line * last_line
Definition structured-text.h:445
int flags
Definition structured-text.h:445
fz_stext_block * next
Definition structured-text.h:451
int id
Definition structured-text.h:442
fz_stext_grid_positions * xs
Definition structured-text.h:449
struct fz_stext_block::@322304060277022073152002261250044130307126045012::@353165215110012323255201136074242346044261103243 b
fz_stext_block * prev
Definition structured-text.h:451
fz_stext_grid_info * info
Definition structured-text.h:449
struct fz_stext_block::@322304060277022073152002261250044130307126045012::@354102075123340333030051105300263261033003035325 s
fz_matrix transform
Definition structured-text.h:446
struct fz_stext_block::@322304060277022073152002261250044130307126045012::@017261060370142342330120176116270104331032375154 i
Definition structured-text.h:477
fz_stext_char * next
Definition structured-text.h:486
fz_quad quad
Definition structured-text.h:483
uint32_t argb
Definition structured-text.h:481
fz_font * font
Definition structured-text.h:485
int c
Definition structured-text.h:478
float size
Definition structured-text.h:484
fz_point origin
Definition structured-text.h:482
uint16_t flags
Definition structured-text.h:480
uint16_t bidi
Definition structured-text.h:479
Definition structured-text.h:567
float max
Definition structured-text.h:571
int uncertainty
Definition structured-text.h:572
float pos
Definition structured-text.h:569
float min
Definition structured-text.h:570
int reinforcement
Definition structured-text.h:568
Definition structured-text.h:421
unsigned int flags
Definition structured-text.h:431
int h
Definition structured-text.h:428
int w
Definition structured-text.h:427
Definition structured-text.h:576
int len
Definition structured-text.h:577
int max_uncertainty
Definition structured-text.h:578
fz_stext_grid_divider list[FZ_FLEXIBLE_ARRAY]
Definition structured-text.h:579
Definition structured-text.h:463
fz_stext_line * next
Definition structured-text.h:469
fz_stext_char * first_char
Definition structured-text.h:468
uint8_t flags
Definition structured-text.h:465
fz_stext_char * last_char
Definition structured-text.h:468
uint8_t wmode
Definition structured-text.h:464
fz_rect bbox
Definition structured-text.h:467
fz_point dir
Definition structured-text.h:466
fz_stext_line * prev
Definition structured-text.h:469
Definition structured-text.h:724
float scale
Definition structured-text.h:726
fz_rect clip
Definition structured-text.h:727
int flags
Definition structured-text.h:725
Definition structured-text.h:1154
fz_stext_struct * parent
Definition structured-text.h:1156
fz_stext_struct * top
Definition structured-text.h:1158
fz_stext_block * block
Definition structured-text.h:1157
fz_stext_page * page
Definition structured-text.h:1155
Definition structured-text.h:329
int page
Definition structured-text.h:332
fz_rect mediabox
Definition structured-text.h:330
int chapter
Definition structured-text.h:331
Definition structured-text.h:344
fz_stext_block * first_block
Definition structured-text.h:348
fz_pool_array * id_list
Definition structured-text.h:358
fz_pool * pool
Definition structured-text.h:346
int refs
Definition structured-text.h:345
fz_rect mediabox
Definition structured-text.h:347
fz_stext_block * last_block
Definition structured-text.h:354
fz_stext_struct * last_struct
Definition structured-text.h:355
Definition structured-text.h:1026
fz_stext_line * line
Definition structured-text.h:1030
fz_stext_block * block
Definition structured-text.h:1029
fz_stext_struct * parent
Definition structured-text.h:1028
fz_stext_char * ch
Definition structured-text.h:1031
fz_stext_page * page
Definition structured-text.h:1027
Definition structured-text.h:515
fz_stext_block * up
Definition structured-text.h:517
fz_stext_struct * parent
Definition structured-text.h:521
fz_structure standard
Definition structured-text.h:532
fz_stext_block * first_block
Definition structured-text.h:525
char raw[FZ_FLEXIBLE_ARRAY]
Definition structured-text.h:535
fz_stext_block * last_block
Definition structured-text.h:528
fz_search_options
Definition structured-text.h:982
@ FZ_SEARCH_EXACT
Definition structured-text.h:983
@ FZ_SEARCH_IGNORE_CASE
Definition structured-text.h:984
@ FZ_SEARCH_REGEXP
Definition structured-text.h:986
@ FZ_SEARCH_KEEP_PARAGRAPHS
Definition structured-text.h:988
@ FZ_SEARCH_KEEP_HYPHENS
Definition structured-text.h:989
@ FZ_SEARCH_KEEP_LINES
Definition structured-text.h:987
@ FZ_SEARCH_IGNORE_DIACRITICS
Definition structured-text.h:985
fz_stext_options * fz_parse_stext_options(fz_context *ctx, fz_stext_options *opts, const char *string)
@ FZ_STEXT_FUZZY_VECTORS
Definition structured-text.h:217
@ FZ_STEXT_CLIP_RECT
Definition structured-text.h:213
@ FZ_STEXT_INHIBIT_SPACES
Definition structured-text.h:199
@ FZ_STEXT_COLLECT_VECTORS
Definition structured-text.h:206
@ FZ_STEXT_TABLE_HUNT
Definition structured-text.h:210
@ FZ_STEXT_COLLECT_STYLES
Definition structured-text.h:211
@ FZ_STEXT_ACCURATE_BBOXES
Definition structured-text.h:205
@ FZ_STEXT_IGNORE_ACTUALTEXT
Definition structured-text.h:207
@ FZ_STEXT_ACCURATE_ASCENDERS
Definition structured-text.h:214
@ FZ_STEXT_PRESERVE_SPANS
Definition structured-text.h:201
@ FZ_STEXT_PRESERVE_WHITESPACE
Definition structured-text.h:197
@ FZ_STEXT_MEDIABOX_CLIP
Definition structured-text.h:220
@ FZ_STEXT_DEHYPHENATE
Definition structured-text.h:200
@ FZ_STEXT_SEGMENT
Definition structured-text.h:208
@ FZ_STEXT_CLIP
Definition structured-text.h:202
@ FZ_STEXT_USE_CID_FOR_UNKNOWN_UNICODE
Definition structured-text.h:203
@ FZ_STEXT_LAZY_VECTORS
Definition structured-text.h:216
@ FZ_STEXT_PRESERVE_LIGATURES
Definition structured-text.h:196
@ FZ_STEXT_USE_GID_FOR_UNKNOWN_UNICODE
Definition structured-text.h:212
@ FZ_STEXT_PARAGRAPH_BREAK
Definition structured-text.h:209
@ FZ_STEXT_COLLECT_STRUCTURE
Definition structured-text.h:204
@ FZ_STEXT_PRESERVE_IMAGES
Definition structured-text.h:198
@ FZ_STEXT_ACCURATE_SIDE_BEARINGS
Definition structured-text.h:215
struct fz_flotilla fz_flotilla
Definition structured-text.h:1317
void fz_init_search_options(fz_context *ctx, fz_search_options *options)
fz_document * fz_open_reflowed_document(fz_context *ctx, fz_document *underdoc, const fz_stext_options *opts)
fz_stext_page_block_iterator fz_stext_page_block_iterator_begin_from_rdfs(fz_stext_page *page, fz_stext_block *block, fz_stext_struct *top)
int fz_is_unicode_hyphen(int c)
FZ_DATA const char * fz_search_options_usage
fz_stext_page_block_iterator fz_stext_page_block_iterator_begin_from(fz_stext_page *page, fz_stext_block *block, fz_stext_struct *top)
fz_stext_page_block_iterator fz_stext_page_block_iterator_begin_from_dfs(fz_stext_page *page, fz_stext_block *block, fz_stext_struct *top)
fz_stext_page_block_iterator fz_stext_page_block_iterator_begin(fz_stext_page *page)
void fz_print_stext_header_as_html(fz_context *ctx, fz_output *out)
fz_stext_line_flags
Definition structured-text.h:455
@ FZ_STEXT_LINE_FLAGS_JOINED
Definition structured-text.h:456
fz_stext_page_block_iterator fz_stext_page_block_iterator_up(fz_stext_page_block_iterator pos)
void fz_print_stext_header_as_xhtml(fz_context *ctx, fz_output *out)
void fz_print_stext_page_as_xml(fz_context *ctx, fz_output *out, fz_stext_page *page, int id)
int fz_stext_page_block_iterator_eod_dfs(fz_stext_page_block_iterator pos)
fz_stext_page_block_iterator fz_stext_page_block_iterator_begin_dfs(fz_stext_page *page)
fz_stext_page_block_iterator fz_stext_page_block_iterator_next_rdfs(fz_stext_page_block_iterator pos)
fz_stext_block * fz_find_table_within_bounds(fz_context *ctx, fz_stext_page *page, fz_rect bounds)
int fz_match_callback_fn(fz_context *ctx, void *opaque, int num_quads, fz_quad *hit_bbox, int chapter, int page)
Definition structured-text.h:670
@ FZ_STEXT_BLOCK_GRID
Definition structured-text.h:377
@ FZ_STEXT_BLOCK_TEXT
Definition structured-text.h:373
@ FZ_STEXT_BLOCK_IMAGE
Definition structured-text.h:374
@ FZ_STEXT_BLOCK_VECTOR
Definition structured-text.h:376
@ FZ_STEXT_BLOCK_STRUCT
Definition structured-text.h:375
fz_stext_page * fz_keep_stext_page(fz_context *ctx, fz_stext_page *page)
void fz_drop_layout(fz_context *ctx, fz_layout_block *block)
fz_stext_xml_flags
Definition structured-text.h:618
@ FZ_STEXT_XML_FLAGS_CHARS
Definition structured-text.h:619
@ FZ_STEXT_XML_FLAGS_POINTERS
Definition structured-text.h:620
int fz_stext_remove_page_fill(fz_context *ctx, fz_stext_page *page)
fz_stext_page * fz_new_stext_page(fz_context *ctx, fz_rect mediabox)
int fz_segment_stext_rect(fz_context *ctx, fz_stext_page *page, fz_rect rect)
void fz_init_stext_options(fz_context *ctx, fz_stext_options *opts)
fz_search * fz_new_search(fz_context *ctx, const char *needle, fz_search_options options)
fz_stext_page_block_iterator fz_stext_page_block_iterator_next_dfs(fz_stext_page_block_iterator pos)
fz_stext_page_block_iterator fz_stext_page_block_iterator_down(fz_stext_page_block_iterator pos)
fz_search_options * fz_parse_search_options(fz_context *ctx, fz_search_options *options, const char *args)
@ FZ_STEXT_STRIKEOUT
Definition structured-text.h:491
@ FZ_STEXT_CLIPPED
Definition structured-text.h:497
@ FZ_STEXT_FILLED
Definition structured-text.h:495
@ FZ_STEXT_UNICODE_IS_CID
Definition structured-text.h:498
@ FZ_STEXT_SYNTHETIC_LARGE
Definition structured-text.h:500
@ FZ_STEXT_STROKED
Definition structured-text.h:496
@ FZ_STEXT_UNDERLINE
Definition structured-text.h:492
@ FZ_STEXT_UNICODE_IS_GID
Definition structured-text.h:499
@ FZ_STEXT_BOLD
Definition structured-text.h:494
@ FZ_STEXT_SYNTHETIC
Definition structured-text.h:493
@ FZ_STEXT_HIGHLIGHT
Definition structured-text.h:501
@ FZ_STEXT_GRID_V_CROSSED
Definition structured-text.h:410
@ FZ_STEXT_GRID_H_CROSSED
Definition structured-text.h:408
@ FZ_STEXT_GRID_T_BORDER
Definition structured-text.h:414
@ FZ_STEXT_GRID_L_BORDER
Definition structured-text.h:412
@ FZ_STEXT_GRID_FULL
Definition structured-text.h:416
fz_quad fz_snap_selection(fz_context *ctx, fz_stext_page *page, fz_point *ap, fz_point *bp, int mode)
void fz_drop_search(fz_context *ctx, fz_search *search)
void fz_print_stext_trailer_as_html(fz_context *ctx, fz_output *out)
int fz_segment_stext_page(fz_context *ctx, fz_stext_page *page)
void fz_table_hunt_within_bounds(fz_context *ctx, fz_stext_page *page, fz_rect bounds)
void fz_print_stext_page_as_html(fz_context *ctx, fz_output *out, fz_stext_page *page, int id)
fz_rect fz_flotilla_raft_area(fz_context *ctx, fz_flotilla *flot, int i)
fz_search_reason
Definition structured-text.h:1008
@ FZ_SEARCH_MORE_INPUT
Definition structured-text.h:1010
@ FZ_SEARCH_COMPLETE
Definition structured-text.h:1016
@ FZ_SEARCH_MATCH
Definition structured-text.h:1013
void fz_verify_stext_page(fz_context *ctx, fz_stext_page *page, const char *title)
int fz_flotilla_size(fz_context *ctx, fz_flotilla *flot)
int fz_is_unicode_space_equivalent(int c)
fz_search_result fz_search_forwards(fz_context *ctx, fz_search *search)
void fz_drop_stext_page(fz_context *ctx, fz_stext_page *page)
void fz_paragraph_break(fz_context *ctx, fz_stext_page *page)
void fz_drop_flotilla(fz_context *ctx, fz_flotilla *f)
fz_stext_block * fz_new_stext_struct(fz_context *ctx, fz_stext_page *page, fz_structure standard, const char *raw, int index)
char * fz_copy_rectangle(fz_context *ctx, fz_stext_page *page, fz_rect area, int crlf)
int fz_search_callback_fn(fz_context *ctx, void *opaque, int num_quads, fz_quad *hit_bbox)
Definition structured-text.h:660
fz_stext_block * fz_find_table_within_grid(fz_context *ctx, fz_stext_page *page, fz_stext_grid_positions *xpos, fz_stext_grid_positions *ypos, float limit)
fz_layout_block * fz_new_layout(fz_context *ctx)
fz_stext_page_details * fz_stext_page_details_for_block(fz_context *ctx, fz_stext_page *page, fz_stext_block *block)
fz_stext_page_block_iterator fz_stext_page_block_iterator_begin_rdfs(fz_stext_page *page)
int fz_stext_page_block_iterator_eod_rdfs(fz_stext_page_block_iterator pos)
void fz_apply_stext_options(fz_context *ctx, fz_stext_options *opts, fz_options *options)
fz_device * fz_new_ocr_device(fz_context *ctx, fz_device *target, fz_matrix ctm, fz_rect mediabox, int with_list, const char *language, const char *datadir, int(*progress)(fz_context *, void *, int), void *progress_arg)
int fz_search_stext_page_cb(fz_context *ctx, fz_stext_page *text, const char *needle, fz_search_callback_fn *cb, void *opaque)
void fz_print_stext_page_as_json(fz_context *ctx, fz_output *out, fz_stext_page *page, float scale)
fz_flotilla * fz_new_flotilla_from_stext_page_vectors(fz_context *ctx, fz_stext_page *page)
int fz_search_stext_page(fz_context *ctx, fz_stext_page *text, const char *needle, int *hit_mark, fz_quad *hit_bbox, int hit_max)
fz_device * fz_new_stext_device(fz_context *ctx, fz_stext_page *page, const fz_stext_options *options)
void fz_print_stext_page_as_text(fz_context *ctx, fz_output *out, fz_stext_page *page)
void fz_add_layout_line(fz_context *ctx, fz_layout_block *block, float x, float y, float h, const char *p)
FZ_DATA const char * fz_stext_options_usage
void fz_classify_stext_rect(fz_context *ctx, fz_stext_page *page, fz_structure classification, fz_rect rect)
@ FZ_SELECT_WORDS
Definition structured-text.h:696
@ FZ_SELECT_LINES
Definition structured-text.h:697
@ FZ_SELECT_CHARS
Definition structured-text.h:695
int fz_match_stext_page_cb(fz_context *ctx, fz_stext_page *page, const char *needle, fz_match_callback_fn *cb, void *opaque, fz_search_options options)
void fz_print_stext_page_as_xml_with_flags(fz_context *ctx, fz_output *out, fz_stext_page *page, int id, fz_stext_xml_flags flags)
void fz_apply_search_options(fz_context *ctx, fz_search_options *options, fz_options *opts)
int fz_match_stext_page(fz_context *ctx, fz_stext_page *text, const char *needle, int *hit_mark, fz_quad *hit_bbox, int hit_max, fz_search_options options)
@ FZ_STEXT_TEXT_JUSTIFY_RIGHT
Definition structured-text.h:385
@ FZ_STEXT_TEXT_JUSTIFY_UNKNOWN
Definition structured-text.h:382
@ FZ_STEXT_TEXT_JUSTIFY_LEFT
Definition structured-text.h:383
@ FZ_STEXT_TEXT_JUSTIFY_CENTER
Definition structured-text.h:384
@ FZ_STEXT_TEXT_JUSTIFY_FULL
Definition structured-text.h:386
void fz_debug_stext_page(fz_context *ctx, fz_stext_page *page, int id)
struct fz_search fz_search
Definition structured-text.h:979
fz_search_result fz_search_backwards(fz_context *ctx, fz_search *search)
fz_device * fz_new_stext_device_for_page(fz_context *ctx, fz_stext_page *stext_page, const fz_stext_options *opts, int chapter_num, int page_num, fz_rect mediabox)
void fz_stext_raft_images(fz_context *ctx, fz_stext_page *stext, fz_image_raft_options *options)
void fz_feed_search(fz_context *ctx, fz_search *search, fz_stext_page *page, int seq)
char * fz_copy_selection(fz_context *ctx, fz_stext_page *page, fz_point a, fz_point b, int crlf)
int fz_highlight_selection(fz_context *ctx, fz_stext_page *page, fz_point a, fz_point b, fz_quad *quads, int max_quads)
int fz_is_unicode_whitespace(int c)
void fz_print_stext_page_as_xhtml(fz_context *ctx, fz_output *out, fz_stext_page *page, int id)
void fz_print_stext_trailer_as_xhtml(fz_context *ctx, fz_output *out)
fz_device * fz_new_ocr_device_with_options(fz_context *ctx, fz_device *target, fz_matrix ctm, fz_rect mediabox, int with_list, const char *language, const char *datadir, int(*progress)(fz_context *, void *, int), void *progress_arg, fz_options *options)
fz_stext_page_block_iterator fz_stext_page_block_iterator_next(fz_stext_page_block_iterator pos)
void fz_add_layout_char(fz_context *ctx, fz_layout_block *block, float x, float w, const char *p)
int fz_stext_page_block_iterator_eod(fz_stext_page_block_iterator pos)
@ FZ_STEXT_VECTOR_IS_STROKED
Definition structured-text.h:393
@ FZ_STEXT_VECTOR_CONTINUES
Definition structured-text.h:402
@ FZ_STEXT_VECTOR_IS_RECTANGLE
Definition structured-text.h:397
void fz_table_hunt(fz_context *ctx, fz_stext_page *page)
int fz_propose_table_within_bounds(fz_context *ctx, fz_stext_page *page, fz_rect bounds, fz_stext_grid_positions **xposp, fz_stext_grid_positions **yposp)
#define FZ_FLEXIBLE_ARRAY
Definition system.h:46