I'm using the Poppler CPP interface. I render to image, then convert to a OpenCV cv::Mat object. More or less like this:
poppler::page_renderer renderer; std::unique_ptr<poppler::document> doc(poppler::document::load_from_file(filename)); for (int page_number = 0; page_number < doc->pages(); page_number++) { std::unique_ptr<poppler::page> page(doc->create_page(page_number)); poppler::image image = renderer.render_page(page.get(), dpi, dpi); cv::Mat mat(image.height(), image.width(), CV_8UC3, image.data(), image.bytes_per_row()); While this seems to work great, I just noticed that this renders into the image any annotations that are saved in the PDF file as well. Looking through the headers, I don't see any way to tell Poppler to skip these annotations. Did I miss something? Thanks, Stephane Charette