Qt pdf文件转换操作

qt文件转换操作,包括word转为pdf;Excel转为pdf;PPT转为pdf;image转为pdf;pdf转为文本文件;pdf导出图片;接口如下所示:

#pragma once
#include <QObject>
#include "filetransformhandle_global.h"

enum FileTransformType
{
    fttNone = 0,
    fttWordToPdf = 1,    //word转为pdf
    fttExcelToPdf = 2,   //Excel转为pdf
    fttPPTToPdf = 3,     //PPT转为pdf
    fttImageToPdf = 4,   //image转为pdf
    fttpdfToText = 5,    //提取pdf文本
    fttpdfToImage = 6,   //pdf导出图片 strDesFilePath:表示导出的文件夹
    fttcmdpdfToText = 7,    // 命令行提取pdf的文本
    fttcmdpdfToHtml = 8,    // 命令行提取pdf到html
    fttDirImageToPdf = 9,    // 多个image转为pdf strSourceFilePath:表示文件夹
};

class FILETRANSFORMHANDLE_EXPORT FileTrasformOperatorHandle : public QObject
{
    Q_OBJECT

public:

    FileTrasformOperatorHandle();

    FileTrasformOperatorHandle(const QString& strSourceFilePath, const QString& strDesFilePath);

    void setTransformType(FileTransformType eTransformType);

    void setSourceFilePath(const QString& strSourceFilePath);

    void setTargetFilePath(const QString& strDesFilePath);

    void run();

    bool runCommand(const QString& strParam);

private:

    void _run(const QString& strParam);

signals:

    void startTransform(const QString& pdfFilePath);

    void finished(const QString& pdfFilePath);

private:

    QString                             m_strSourceFilePath;    // 源文件
    QString                             m_strDesFilePath;       // 目的文件
    FileTransformType                   m_eTransformType;       // 转换类型
};

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Qt中可以使用QPdfDocument类来读取PDF文件,并且可以使用QPainter类来在界面或窗口中显示PDF页面。 下面是一个简单的Qt程序,演示如何读取PDF文件并显示: 1. 创建一个新的Qt Widgets Application项目,并添加一个QPushButton和一个QLabel控件。 2. 在QPushButton的clicked信号中,添加读取PDF文件并显示的代码: ```cpp void MainWindow::on_pushButton_clicked() { QString fileName = QFileDialog::getOpenFileName(this, tr("Open PDF"), "", tr("PDF Files (*.pdf)")); if (fileName.isEmpty()) { QMessageBox::warning(this, tr("Warning"), tr("Cannot open PDF file!")); return; } QPdfDocument pdfDoc(fileName); if (!pdfDoc.isInitialised()) { QMessageBox::warning(this, tr("Warning"), tr("PDF document cannot be initialized!")); return; } if (pdfDoc.numPages() <= 0) { QMessageBox::warning(this, tr("Warning"), tr("PDF document contains no pages!")); return; } int pageNum = 1; QImage img = pdfDoc.pageImage(pageNum - 1, 300, 300); ui->label->setPixmap(QPixmap::fromImage(img)); } ``` 3. 运行程序,点击按钮选择一个PDF文件,程序将显示第一页的PDF页面。 说明: (1)首先使用QFileDialog来选择PDF文件,如果选择的文件名为空,则给出错误提示并返回。 (2)创建QPdfDocument对象,并检查是否初始化成功,如果错误则给出错误提示并返回。 (3)检查PDF文件是否包含页面,如果不包含则给出错误提示并返回。 (4)通过调用QPdfDocument的pageImage方法来返回一个QImage对象,然后将其转换为QPixmap对象并在QLabel控件中显示。 (5)注意在QPdfDocument的构造函数中传入的文件名要使用QString类型。 (6)在本例中我们只显示第一页,如果想要显示其他页,只需要设置pageNum变量即可。 以上代码只是演示了如何在界面中显示PDF文件,如果需要更多的功能,比如支持缩放、翻页、搜索、文本提取等,则需要使用更多的Qt组件和API。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值