diff options
Diffstat (limited to 'src/pdf_bridge.h')
| -rw-r--r-- | src/pdf_bridge.h | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/src/pdf_bridge.h b/src/pdf_bridge.h index 81287578..8c73f688 100644 --- a/src/pdf_bridge.h +++ b/src/pdf_bridge.h @@ -149,6 +149,20 @@ typedef struct pardes_pdf_outline_result { size_t bytes_len; } pardes_pdf_outline_result; +/* URI borrows the current page's lazily loaded link list. Copy it before any + * other document operation. A NULL URI means the point has no usable link. */ +typedef struct pardes_pdf_link { + const unsigned char *uri; + size_t uri_len; + pardes_pdf_quad quad; + int destination_kind; + int page; + float x; + float y; + unsigned char has_x; + unsigned char has_y; +} pardes_pdf_link; + enum { PARDES_PDF_OK = 0, PARDES_PDF_ERROR = -1, @@ -168,7 +182,8 @@ enum { /* Outline conversion is atomic: crossing any bound returns no rows. */ PARDES_PDF_MAX_OUTLINE_ITEMS = 8192, PARDES_PDF_MAX_OUTLINE_DEPTH = 64, - PARDES_PDF_MAX_OUTLINE_BYTES = 4 * 1024 * 1024 + PARDES_PDF_MAX_OUTLINE_BYTES = 4 * 1024 * 1024, + PARDES_PDF_MAX_LINK_URI_BYTES = 64 * 1024 }; pardes_pdf_document *pardes_pdf_open(const char *path, int *page_count); @@ -282,6 +297,19 @@ void pardes_pdf_drop_outline_result( void *outline ); +int pardes_pdf_link_at( + pardes_pdf_document *document, + int page_number, + pardes_pdf_point point, + pardes_pdf_link *out +); +int pardes_pdf_copy_rectangle( + pardes_pdf_document *document, + int page_number, + pardes_pdf_quad quad, + pardes_pdf_owned_text *out +); + #ifdef __cplusplus } #endif |
