Qt:使用poppler库打开qrc-pdf



我用poppler库显示pdf的函数有点麻烦。下面的代码是发生问题的函数。

const QString&file是文件的路径int页面是必须打开的页面

当我将文件设置为真实路径(例如"/Users/User/Documents/xxx.pdf")时,打开它是没有问题的。但当我将路径设置为qrc文件(":/files/xxxx.pdf"),它就不起作用了。我想用它来显示用户手册,例如,在应用程序中。

我也尝试过先用它制作一个QFile,打开它并执行readAll,然后加载通过执行Poppler::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*/
    }
}

我希望你能帮助我,

问候,

Matt

我也试过先制作一个QFile走出去,打开它然后做readAll,然后加载QByteArray接收者doingPoppler::Document::loadFromData(qbyterarray),但它已经出错在ReadOnly中打开QFile时模式

QFile f;
f.setFileName(":/skin/AppIcon16.png");
f.open(QIODevice::ReadOnly);
QByteArray r=f.readAll();

完美地读取了资源中的所有数据,已经检查过了。所以我建议你在尝试时做错了什么。也许是路径错误,也许是其他原因。。。

相关内容

  • 没有找到相关文章

最新更新