WebpagePrinterTool 2.0
Print a web page skip the browser's print preview
载入中...
搜索中...
未找到
ToPrinter.h
浏览该文件的文档.
1#pragma once
4#include "DataPack.h"
5#include "Printer.h"
6template <typename T>
7class ToPrinter {
8 T next;
9 static constexpr STEP step = STEP::PRINTE;
10
11 public:
13
14 public:
15 void work(PrinterDataPack& data_pack) {
16 qDebug()<<step_str[step];
17 if (data_pack.config.is_to_printer == 1) {
18 CanExceptionCallback callback(
19 [this, &data_pack]() {
20 try {
21 data_pack.page.status = step_str[step];
23 next.work(data_pack);
24 } catch (const SqliteOpError& e) {
25 data_pack.setRespValue(RespError::toJsonObject(data_pack.uid, e.what()));
26 }
27 },
28 [this, &data_pack](const PrintWorkFlowError&) {
30 data_pack.setRespValue(
31 RespError::toJsonObject(data_pack.uid, data_pack.page.error_message));
32 });
33 printer.setDataPack(&data_pack);
34 printer.toPrinter(callback);
35 } else {
36 next.work(data_pack);
37 }
38 }
39};
constexpr std::array< char const *, 5 > step_str
定义 DataPack.h:15
STEP
定义 DataPack.h:14
@ PRINTE
定义 DataPack.h:14
request response 接口数据格式
定义 CanExceptionCallback.h:4
定义 PrintWorkFlowError.h:3
定义 Printer.h:12
static SqliteDb & instance()
定义 SqliteDb.cpp:33
void updatePage(const PrintedPage &) const
update Page
定义 SqliteDb.cpp:317
定义 SqliteOpError.h:6
const char * what() const noexcept override
定义 SqliteOpError.h:18
定义 ToPrinter.h:7
static constexpr STEP step
定义 ToPrinter.h:9
T next
定义 ToPrinter.h:8
Printer printer
定义 ToPrinter.h:12
void work(PrinterDataPack &data_pack)
定义 ToPrinter.h:15
QString error_message
错误信息
定义 PrintedPage.h:66
QString status
状态 STEP
定义 PrintedPage.h:36
int is_to_printer
是否使用(物理)打印机, 例如:是否想要打印到一张a4纸上
定义 PrinterConfig.h:30
定义 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