云计算百科
云计算领域专业知识百科平台

案例分享:数字化智能制造工艺报告生成工具Demo(当前v1.0.1)

若该文为原创文章,转载请注明出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/163271263

长沙红胖子Qt·西安(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…

合作案例专栏:案例分享(体验Demo可下载,只定制)

需求

  工艺通用模板展示文件、报告和相关模板导出pdf   1.封面:左上序号,右上版本,文件名称,公司名称,公司logo,零件编号,零件名称。   2.首页表头:机器型号、指令编号、指令版次、有效性、阶段标识   3.首页内容:FO任务卡控制,换版说明,所需图样,所需技术文件   4.其他页继续开发中   5.设计采用接口的形式(当前使用txt),   6.展示可2和3支持无限行数据,翻页,空格行,调整位置等等。   7.可加载不同数据的txt直接生成pdf,并应用中展示和调用本地pdf打开,方便测试与生成。   8.后续可添加表格,图像,三维图等等,此模块作为长期报告和展示模块会持续开发。   9.不依赖系统和第三方插件,支持windows,linux和arm,只依赖qt本身,方便后续迭代和移植兼容。

Demo_v1.0.1

  在这里插入图片描述   数据文件:   在这里插入图片描述

  在这里插入图片描述

  在这里插入图片描述

  在这里插入图片描述

  在这里插入图片描述

  在这里插入图片描述

下载

  windows 运行包下载地址 CSDNf粉丝0积分下载:https://download.csdn.net/download/qq21497936/93194100   QQ技术群,进Q群,点击“文件”搜索“displayProcess”,群内与博文同步更新)

模块化

  在这里插入图片描述

Demo部分源码

调用代码

// 生成报告
_listImage = DisplayProcessManager::getInstance()->createDisplayProcessImages();

if(_listImage.size() > 0)
{
_currentPage = 0;
ui->widget_image->setImage(_listImage.at(_currentPage));
// 打印打pdf
QString filePath = PrinterManager::getInstance()->printToPdf(_listImage);
ui->lineEdit_pdfFilePath->setText(filePath);
}else{
_currentPage = 0;
}

DisplayProcessManager.h

#ifndef DISPLAYPROCESSMANAGER
#define DISPLAYPROCESSMANAGER

#include <QObject>
#include <QMutex>
#include <QMutexLocker>
#include <QPrinterInfo>
#include <QImage>
#include <QPainter>
#include <QFontMetrics>

#include "displayProcessCommon.h"

class DisplayProcessManager : public QObject
{
Q_OBJECT
private:
explicit DisplayProcessManager(QObject *parent = 0);

public:
static DisplayProcessManager * getInstance();

public:
QList<QImage> createDisplayProcessImages();

...

protected:
QSize getA4Size();
QImage createShouYe(); // 创建首页
QList<QImage> createFoRenWuKaKongZhi(); // 创建FO卡任务控制(FO任务卡控制+换版说明+所需图样+所需技术文件)
QList<QImage> createGongZuoShuoMing(); // 创建工作说明(工作说明+原材料控制+设备汇总+工量具汇总+工装汇总)

protected:
void saveCurrentImage(QImage image); // 存储当前图片

protected:
void drawContentPageTemplate(QPainter *painter);// 第二页开始的页模板(不含页码)

protected: // 通用使用函数(固定位置)
void drawBorder(QPainter *painter); // 绘制边框
void drawZHFO(QPainter *painter); // 绘制ZHFO
void drawJiXing(QPainter *painter); // 绘制机型
void drawFoXuLieHao(QPainter *painter); // 绘制FO系列号
void drawHeaderInfo(QPainter *painter); // 绘制表头信息
void drawFooterInfo(QPainter *painter); // 绘制页脚信息(不含页码)
void drawPageNum(QPainter *painter, int currentNum, int totalNum); // 绘制页码(因为动态最后单独刷一次)

protected: // 仅“首页”使用函数(固定位置)
void drawBanCi(QPainter *painter); // 绘制版次
void drawInnerBorder(QPainter *painter); // 绘制边框
void drawFileTitle(QPainter *painter); // 绘制文件标题
void drawCompanyName(QPainter *painter); // 绘制公司名称
void drawLogoImage(QPainter *painter); // 绘制logo
void drawLingJianHao(QPainter *painter); // 绘制零件号
void drawLingJianMingCheng(QPainter *painter); // 绘制零件名称

protected: // 可能导致分页,具体内容
QList<QImage> drawFoRenWuKaKongZhiTable(int y, int width, int height); // 绘制“FO任务卡控制”表
QList<QImage> drawHuanBanShuoMingTable(int y, int width, int height); // 绘制“换版说明”表
QList<QImage> drawSuoXuTuYangTable(int y, int width, int height); // 绘制“所需图样”表
QList<QImage> drawSuoXuJiShuWenJianTable(int y, int width, int height); // 绘制“所需技术文件”表

QList<QImage> drawGongZuoShuoMingTable(int y, int width, int height); // 绘制“工作说明"表
QList<QImage> drawYuanCaiLiaoKongZhiTable(int y, int width, int height); // 绘制“原材料控制”表
QList<QImage> drawSheBeiHuiZongTable(int y, int width, int height); // 绘制“设备汇总”表
QList<QImage> drawGongLiangJuHuiZongTable(int y, int width, int height); // 绘制“工量具汇总”表
QList<QImage> drawGongZhuangHuiZongTable(int y, int width, int height); // 绘制“工装汇总”表

...

private:
static DisplayProcessManager * _pInstance;
static QMutex _mutex;

...

};

#endif // DISPLAYPROCESSMANAGER

工程模板v1.0.1

  在这里插入图片描述

本文章博客地址:https://hpzwl.blog.csdn.net/article/details/163271263

赞(0)
未经允许不得转载:网硕互联帮助中心 » 案例分享:数字化智能制造工艺报告生成工具Demo(当前v1.0.1)
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!