#include "bartender.h"
#include <QDebug>
#include <ole2.h>
BarTender *BarTender::m_gInstance = nullptr;
BarTender::BarTender(QObject *parent) : QObject(parent)
{
HRESULT r = OleInitialize(0);//多线程时,必须加
m_barTender = new QAxObject();
m_barTender->setControl("BarTender.Application");//连接BarTender控件
}
BarTender::~BarTender()
{
delete m_barTender;
}
QList<QPrinterInfo> BarTender::getPrinterInfo() const
{
return QPrinterInfo::availablePrinters();
}
void BarTender::OpenFliePath(const QString &path)
{
QByteArray ba=path.toUtf8();
m_btApp = m_barTender->querySubObject("Formats")\
->querySubObject("Open(char *,bool, char *)", ba.data(),false,"");
m_printSetup = m_btApp->querySubObject("PrintSetup");
}
void BarTender::setPrinterName(const QString &name)
{
QByteArray ba=name.toUtf8();
if(m_printSetup)
m_printSetup->dynamicCall("Printer",ba.data());
}
void BarTender::addNamedValue(const QString &name, const QString &value)
{
QByteArray ba1=name.toUtf8();
QByteArray ba2=value.toUtf8();
if(m_btApp)
m_btApp->dynamicCall("SetNamedSubStringValue(char *,char *)",\
ba1.data(),ba2.data());
}
void BarTender::printer()
{
if(m_btApp && m_printSetup)
{
m_printSetup->dynamicCall("IdenticalCopiesOfLabel",1);//设置同序列打印的份数
m_printSetup->dynamicCall("NumberSerializedLabels",1);//设置需要打印的序列数
m_btApp->dynamicCall("PrintOut(bool,bool)",true, false);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
收起资源包目录
BarTender_Test.rar (8个子文件)
BarTenderTest
mainwindow.ui 3KB
BarTenderTest.pro.user 23KB
BarTenderTest.pro 1KB
bartender.h 819B
mainwindow.cpp 1006B
main.cpp 183B
mainwindow.h 450B
bartender.cpp 2KB
共 8 条
- 1
川哥子
- 粉丝: 19
- 资源: 8
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论2