我想将一个PDF查看器添加到我目前正在使用的嵌入式设备上,该设备在Xilinx Zynq SoC上运行Linux / Qt5。通常,该设备非常快,可以应对一些体面的工作负荷,例如使用QCustomPlot每100ms绘制一个8192点图。
我遇到了Poppler / libpoppler并且认为完成手头的任务是完美的,即显示PDF。我已经编写了一些演示代码,并且从这段代码中调用poppler的renderToImage()方法需要将近1分钟,以便我可以将PDF转换为要在UI上显示的图像。
有没有人使用Poppler-Qt5并发现了类似的结果或加速的方法?如果没有,是否还有其他我应该关注的库与Qt很好地集成?
这是我的演示代码片段:
// Load pdf
Poppler::Document* document = Poppler::Document::load("/tmp/test.pdf");
document->setRenderHint(Poppler::Document::Antialiasing);
document->setRenderHint(Poppler::Document::TextAntialiasing);
if (!document || document->isLocked() || document == 0 )
{
cout << "ERROR" << endl;
}
Poppler::Page* pdfPage = document->page(0);
if (pdfPage == 0)
{
cout << "ERROR" << endl;
}
// Generate a QImage of the rendered page
QImage image = pdfPage->renderToImage(72.0,72.0,0,0,pdfPage->pageSize().width(),pdfPage->pageSize().height());
if (image.isNull())
{
cout << "ERROR" << endl;
}
ui->label->setPixmap(QPixmap::fromImage(image));
ui->label->show();
// after the usage, the page must be deleted
delete pdfPage;
delete document;