WebpagePrinterTool 2.0
Print a web page skip the browser's print preview
载入中...
搜索中...
未找到
LastProcess.h
浏览该文件的文档.
1#pragma once
2#include "../db/SqliteDb.h"
4#include "DataPack.h"
5#include <QProcess>
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()) {
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();
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];
41 data_pack.uid, data_pack.page.page_file_path, data_pack.page.id));
42 }
43 }
44 }
45};
constexpr std::array< char const *, 5 > step_str
定义 DataPack.h:15
STEP
定义 DataPack.h:14
@ LAST_PROCESS
定义 DataPack.h:14
request response 接口数据格式
定义 LastProcess.h:6
void work(PrinterDataPack &data_pack)
定义 LastProcess.h:10
static constexpr STEP step
定义 LastProcess.h:7
static SqliteDb & instance()
定义 SqliteDb.cpp:33
void updatePage(const PrintedPage &) const
update Page
定义 SqliteDb.cpp:317
int id
主键id
定义 PrintedPage.h:15
QString error_message
错误信息
定义 PrintedPage.h:66
QString page_file_path
.png|.pdf 文件路径位j置
定义 PrintedPage.h:46
int end_cmd_exec_status
最终执行命令的返回状态
定义 PrintedPage.h:56
QString end_cmd_exec_message
最终执行命令的返回信息
定义 PrintedPage.h:61
QString status
状态 STEP
定义 PrintedPage.h:36
QString process_at_end
最后执行的命令
定义 PrinterConfig.h:85
QString process_argument_at_end
最后执行的命令参数 PAGE_FILE_PATH% 将会被替换为文件路径, 不包文件后缀名称.
定义 PrinterConfig.h:90
定义 DataPack.h:18
void setRespValue(QJsonObject obj)
定义 DataPack.h:41
PrintedPage page
定义 DataPack.h:20
PrinterConfig config
定义 DataPack.h:21
std::optional< int > uid
定义 DataPack.h:22
static QJsonObject toJsonObject(std::optional< int > uid, const QString &msg)
定义 WebInterface.h:49
static QJsonObject toJsonObject(std::optional< int > uid, const QString &file_path, int page_id)
定义 WebInterface.h:303