WebpagePrinterTool
2.0
Print a web page skip the browser's print preview
载入中...
搜索中...
未找到
LastProcess.h
浏览该文件的文档.
1
#pragma once
2
#include "
../db/SqliteDb.h
"
3
#include "
../model/WebInterface.h
"
4
#include "
DataPack.h
"
5
#include <QProcess>
6
class
LastProcess
{
7
static
constexpr
STEP
step
=
STEP::LAST_PROCESS
;
8
9
public
:
10
void
work
(
PrinterDataPack
& data_pack) {
11
qDebug() <<
step_str
[
step
];
12
if
(data_pack.
config
.
process_at_end
.isEmpty()) {
13
data_pack.
setRespValue
(
RespPrintPage::toJsonObject
(
14
data_pack.
uid
, data_pack.
page
.
page_file_path
, data_pack.
page
.
id
));
15
}
else
{
16
17
QProcess process;
18
process.setEnvironment(QProcess::systemEnvironment());
19
auto
process_argumnet = data_pack.
config
.
process_argument_at_end
.replace(
20
"%PAGE_FILE_PATH%"
, data_pack.
page
.
page_file_path
);
21
22
process.start(data_pack.
config
.
process_at_end
, process_argumnet.split(
" "
));
23
bool
l = process.waitForFinished();
24
if
(!l) {
25
qDebug() << process.error();
26
qDebug() << process.errorString();
27
qDebug() <<
"in nix bundle, host program not work!"
;
28
}
29
data_pack.
page
.
end_cmd_exec_message
= process.readAllStandardOutput();
30
data_pack.
page
.
end_cmd_exec_status
= process.exitCode();
31
if
(process.exitStatus() != QProcess::NormalExit) {
32
data_pack.
page
.
error_message
= process.readAllStandardError();
33
SqliteDb::instance
().
updatePage
(data_pack.
page
);
34
data_pack.
setRespValue
(
35
RespError::toJsonObject
(data_pack.
uid
, data_pack.
page
.
error_message
));
36
}
else
{
37
// qDebug()<<step_str[step]<<data_pack.page.end_cmd_exec_message;
38
data_pack.
page
.
status
=
step_str
[
step
];
39
SqliteDb::instance
().
updatePage
(data_pack.
page
);
40
data_pack.
setRespValue
(
RespPrintPage::toJsonObject
(
41
data_pack.
uid
, data_pack.
page
.
page_file_path
, data_pack.
page
.
id
));
42
}
43
}
44
}
45
};
DataPack.h
step_str
constexpr std::array< char const *, 5 > step_str
定义
DataPack.h:15
STEP
STEP
定义
DataPack.h:14
LAST_PROCESS
@ LAST_PROCESS
定义
DataPack.h:14
SqliteDb.h
WebInterface.h
request response 接口数据格式
LastProcess
定义
LastProcess.h:6
LastProcess::work
void work(PrinterDataPack &data_pack)
定义
LastProcess.h:10
LastProcess::step
static constexpr STEP step
定义
LastProcess.h:7
SqliteDb::instance
static SqliteDb & instance()
定义
SqliteDb.cpp:33
SqliteDb::updatePage
void updatePage(const PrintedPage &) const
update Page
定义
SqliteDb.cpp:317
PrintedPage::id
int id
主键id
定义
PrintedPage.h:15
PrintedPage::error_message
QString error_message
错误信息
定义
PrintedPage.h:66
PrintedPage::page_file_path
QString page_file_path
.png|.pdf 文件路径位j置
定义
PrintedPage.h:46
PrintedPage::end_cmd_exec_status
int end_cmd_exec_status
最终执行命令的返回状态
定义
PrintedPage.h:56
PrintedPage::end_cmd_exec_message
QString end_cmd_exec_message
最终执行命令的返回信息
定义
PrintedPage.h:61
PrintedPage::status
QString status
状态 STEP
定义
PrintedPage.h:36
PrinterConfig::process_at_end
QString process_at_end
最后执行的命令
定义
PrinterConfig.h:85
PrinterConfig::process_argument_at_end
QString process_argument_at_end
最后执行的命令参数 PAGE_FILE_PATH% 将会被替换为文件路径, 不包文件后缀名称.
定义
PrinterConfig.h:90
PrinterDataPack
定义
DataPack.h:18
PrinterDataPack::setRespValue
void setRespValue(QJsonObject obj)
定义
DataPack.h:41
PrinterDataPack::page
PrintedPage page
定义
DataPack.h:20
PrinterDataPack::config
PrinterConfig config
定义
DataPack.h:21
PrinterDataPack::uid
std::optional< int > uid
定义
DataPack.h:22
RespError::toJsonObject
static QJsonObject toJsonObject(std::optional< int > uid, const QString &msg)
定义
WebInterface.h:49
RespPrintPage::toJsonObject
static QJsonObject toJsonObject(std::optional< int > uid, const QString &file_path, int page_id)
定义
WebInterface.h:303
src
printer
LastProcess.h
制作者
1.13.2