【发布时间】:2011-06-01 08:38:47
【问题描述】:
我在使用 poppler 库显示 pdf 的功能时遇到了一些问题。下面的代码就是出现问题的函数。
const QString &file 是文件的路径 int page 是它必须打开的页面
当我将文件设置为真实路径(例如“/Users/User/Documents/xxx.pdf”)时,打开它没有问题。但是当我给出一个 qrc 文件的路径(“:/files/xxx.pdf”)时,它就不起作用了。例如,我想用它在应用程序中显示用户手册。
我也尝试过先用它制作一个 QFile,打开它并执行 readAll,然后加载 doPoppler::Document::loadFromData(the qbytearray) 接收到的 QByteArray,但是在 ReadOnly 模式下打开 QFile 时它已经出错了。
void class::setPdf(const QString &file, int page)
{
Poppler::Document *doc = Poppler::Document::load(file);
if (!doc) {
QMessageBox msgbox(QMessageBox::Critical, tr("Open Error"), tr("Please check preferences: cannot open:\n") + file,
QMessageBox::Ok, this);
msgbox.exec();
}
else{ /*Code for displaying the pdf, which works fine*/
}
}
希望你能帮助我,
你好,
马特
【问题讨论】:
-
你是如何用 QFile 打开它的?正常情况下,QFile 以 readOnly 模式从 qrc 读取资源没有任何麻烦...