MuPDF从pdf页面获取每个图像坐标

时间:2014-07-02 13:11:17

标签: mupdf

正如标题所说,我想要检索pdf页面内图像的所有坐标。我到现在为止尝试的是:

                    dev = fz_new_text_device(ctx, sheet, page);

                    fz_disable_device_hints(dev , FZ_IGNORE_IMAGE);

                    fz_run_page(doc, pg->currentPage, dev , &ctm,
                    NULL);

                    // iterate over the page_blocks (can be image and text);
                    fz_page_block *block;

                    for (block = page->blocks;
                            block < page->blocks + page->len; block++) {

                        if  (block->type == FZ_PAGE_BLOCK_IMAGE) {
                            fz_image_block *iBlock = block->u.image;
                            fz_irect iRect;
                            fz_irect_from_rect(&iRect, &iBlock->bbox);
                            // the resulting irect from here has x0 = 0 and also 
                            // y0 = 0 even if there are no images aligned in [0,0]
                            }
                    }

所以我的问题是,如果我以正确的方式开始这样做,如果没有,有人可以给出一些关于我如何获得图像坐标的指示?

1 个答案:

答案 0 :(得分:2)

所以那里的代码是制作文本提取设备,然后通过该设备运行页面内容。这将返回页面上文本块的结构化列表以及页面上的图像。

返回的结构化数据不包括放置图像的位置/比例。您正在访问的宽度/高度数据是图像本身的数据,而不是它们在页面上的位置。

听起来您需要更新文本提取设备以存储用于每个图像的fz_matrix。这不是一项艰巨的任务。弹出#ghostscript irc频道获取一些指示。

罗宾