const char *text;
int x1, y1, x2, y2;
- x1 = rect->x;
- y1 = rect->y;
- x2 = x1 + rect->width;
- y2 = y1 + rect->height;
+ x1 = rect->x + pdf_document->page_x_offset;
+ y1 = rect->y + pdf_document->page_y_offset;
+ x2 = x1 + rect->width + pdf_document->page_x_offset;
+ y2 = y1 + rect->height + pdf_document->page_y_offset;
sel_text = pdf_document->out->getText (x1, y1, x2, y2);
text = sel_text->getCString ();
{
PdfDocument *pdf_document = PDF_DOCUMENT (document);
LinkAction *action;
+ double link_x, link_y;
- y = pdf_document->out->getBitmapHeight() - y;
+ if (pdf_document->links == NULL) {
+ return NULL;
+ }
+
+ /* Offset */
+ link_x = x - pdf_document->page_x_offset;
+ link_y = y - pdf_document->page_y_offset;
+
+ /* Inverse y */
+ link_y = pdf_document->out->getBitmapHeight() - link_y;
+
+ /* Zoom */
+ link_x = link_x / pdf_document->scale;
+ link_y = link_y / pdf_document->scale;
- action = pdf_document->links->find ((double)x / pdf_document->scale,
- (double)y / pdf_document->scale);
+ action = pdf_document->links->find (link_x, link_y);
if (action) {
return build_link_from_action (pdf_document, action, "");