首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >发布的应用程序不能像原始应用程序那样工作

发布的应用程序不能像原始应用程序那样工作
EN

Stack Overflow用户
提问于 2015-02-20 21:56:03
回答 1查看 149关注 0票数 0

我有一个包含成百上千张照片(照片)的文件,我需要在预览中向某些人展示。这个预览应该是一个购买订单(迅速,没有“亲”),我会给他们,这样人们就可以在他们想要的图片和大小的情况下十字架(就这么简单)。

我试图自动生成采购订单,将有两个每页(A4)的PDF。

我使用Qt/C++和三个对象:

QPdfWriter

QPainter

QImage

下面是pdf-generation类的开始:

代码语言:javascript
复制
int order = 1;
qDebug() << "pdf creation";

QString logoName = QFileDialog::getOpenFileName(0, "Sélectionner le logo", QString(), "Images (*.png *.bmp *.jpg)");

QString fileName = QFileDialog::getSaveFileName(0, "Export PDF",
                                                QString(), "*.pdf");

QString dir = QFileDialog::getExistingDirectory(0, "Sélectionner le dossier de photos");

QFont titleFont("Arial", 24);
titleFont.setUnderline(true);

QFont textFont("Times new roman", 12);

QDirIterator it(dir);

if (!fileName.isEmpty()) {
    if (QFileInfo(fileName).suffix().isEmpty())
        fileName.append(".pdf");
    QPdfWriter writer(fileName);

    QPainter painter(&writer);
    painter.setRenderHint(QPainter::Antialiasing);

    int height = painter.device()->height();
    int semi = height/2;
    int width = painter.device()->width();
    int digits = 1;

    qDebug() << "height : " << height << " width : " << width;

    QImage logo(logoName);
    QImage finalLogo = logo.scaled(3750, 1250, Qt::KeepAspectRatio);




    while(it.hasNext()){
        it.next();
        digits = countDigits(order);
        if(it.fileInfo().isFile()){
            if(order%2!=0){
                painter.drawImage(300,100,finalLogo);
                QImage currentPreview(it.filePath());
                QImage finalPreview = currentPreview.scaled(3250,4000, Qt::KeepAspectRatio);
                painter.drawImage(650,1500,finalPreview);

其余部分只是文本/边框的绘制。

我在调试中尝试过:运行良好我在发布版中编译,将所有的.dll放在文件中(包括平台),在没有Qt的情况下运行它:运行正常

然后我把文件放在U盘上,我把它放在另一台我用来拍照的电脑上,那台电脑没有Qt。我启动了.exe,应用程序显示与我的开发pc上完全一样

但是当我调用PDF创建时,我用我的数据填充了FileDialogs,它运行了大约30秒(文件中有很多图片),并生成了PDF。

我打开它然后..。PDF上没有一张图片。

所有的行和文本都在没有任何问题的地方,它生成了正确数量的采购订单,但没有一个图片在上面…徽标(QImage finalLogo)和预览(QImage finalPreview)都不存在。

这就像是QPainter::drawText()/drawLine()可以工作,但QPainter::drawImage不行。

这是令人不安的,因为它可以在一台计算机上工作,但不能在另一台计算机上工作。我在编译/发布的时候做错了什么吗?

EN

回答 1

Stack Overflow用户

发布于 2015-04-27 02:29:30

(Answered in the comments - converted to a community wiki.)

操作员写道:

Ok!我想通了。用于处理jpeg的dll不在正确的目录中,我将它移到正确的目录中,它工作了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28630664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档