Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
CPrinterCairo.hpp
Go to the documentation of this file.
1#ifndef LIBS_CAIRO_CPRINTERCAIRO_HPP_
2#define LIBS_CAIRO_CPRINTERCAIRO_HPP_
3
5#include "core/IPrinter.hpp"
6
7#include <cairo/cairo.h>
8#include <pango/pango-layout.h>
9
10class CPrinterCairo : public IPrinter
11{
12public:
13 static CPrinterCairo *createPdf(const std::string &pathDocumentCairo);
14 static CPrinterCairo *createPostScript(const std::string &pathDocumentCairo);
15
17 CPrinterCairo(const CPrinterCairo &other) = delete;
18 CPrinterCairo(CPrinterCairo &&other) = delete;
19 ~CPrinterCairo() override;
20
21 CPrinterCairo &operator=(const CPrinterCairo &other) = delete;
23
24 virtual void addToIndex(const std::string &chapter, uint64_t index);
25 void beginDocument(uint64_t sizeXPage, uint64_t sizeYPage) override;
26 void beginPage() override;
27 void drawImage(CGeoCanvas *geo, double posX, double posY, double sizeX, double sizeY,
28 iv::types::color colorBackground) override;
29 void drawImagePng(std::string_view nameImage, double posX, double posY, int32_t sizeY) override;
30 void drawLine(double x1, double y1, double x2, double y2) override;
31 void drawRectangle(double x1, double y1, double x2, double y2) override;
32 void drawRectangleFilled(double x1, double y1, double x2, double y2) override;
33 void endDocument() override;
34 void endPage(uint64_t *numPage) override;
35 void moveTo(double posX, double posY) override;
36 void relativeMoveTo(int32_t positionX, int32_t positionY) override;
37
38 void saveDocument(const std::string &titleDoc) override;
39
40 void showLayout() override;
41
42 uint64_t getNumTotalPages() override;
43 void getTextSize(int32_t *widthText, int32_t *heightText) override;
44
45 void setAlignment(iv::eFontAlignment fontAlignment) override;
46 void setColorRGB(uint32_t rgb) override;
47 void setFont(const std::string &fontName, iv::eFontSlant fontSlant, iv::eFontWeight fontWeight,
48 uint64_t fontHeight) override;
49 void setIndent(int64_t indentFirstLineDP) override;
50 void setSpacing(uint64_t fontHeight, double spacingBetweenLines) override;
51 void setText(std::string_view textParagraph) override;
52 void setWidth(uint64_t width) override;
53
54private:
56 {
57 PDF,
59 };
60
61 CPrinterCairo(CPrinterCairo::EOutputPrinterType outputPrinterType, std::string path);
62
64
66
67 cairo_surface_t *m_surfaceOpt;
68 cairo_t *m_cairoOpt;
69 PangoLayout *m_layoutOpt;
70};
71
72#endif /* LIBS_CAIRO_CPRINTERCAIRO_HPP_ */
Definition CGeoCanvas.hpp:13
Definition CPrinterCairo.hpp:11
void moveTo(double posX, double posY) override
Definition CPrinterCairo.cpp:250
void setText(std::string_view textParagraph) override
Definition CPrinterCairo.cpp:363
void endPage(uint64_t *numPage) override
Definition CPrinterCairo.cpp:243
void beginPage() override
Definition CPrinterCairo.cpp:139
void setSpacing(uint64_t fontHeight, double spacingBetweenLines) override
Definition CPrinterCairo.cpp:353
EOutputPrinterType
Definition CPrinterCairo.hpp:56
static CPrinterCairo * createPostScript(const std::string &pathDocumentCairo)
Definition CPrinterCairo.cpp:78
CPrinterCairo()
Definition CPrinterCairo.cpp:83
std::string m_pathDocumentCairo
Definition CPrinterCairo.hpp:65
cairo_t * m_cairoOpt
Definition CPrinterCairo.hpp:68
void drawImage(CGeoCanvas *geo, double posX, double posY, double sizeX, double sizeY, iv::types::color colorBackground) override
Definition CPrinterCairo.cpp:146
void setWidth(uint64_t width) override
Definition CPrinterCairo.cpp:373
CPrinterCairo & operator=(const CPrinterCairo &other)=delete
CPrinterCairo(const CPrinterCairo &other)=delete
void saveDocument(const std::string &titleDoc) override
Definition CPrinterCairo.cpp:393
void relativeMoveTo(int32_t positionX, int32_t positionY) override
Definition CPrinterCairo.cpp:257
virtual void addToIndex(const std::string &chapter, uint64_t index)
Definition CPrinterCairo.cpp:389
void showLayout() override
Definition CPrinterCairo.cpp:264
void setIndent(int64_t indentFirstLineDP) override
Definition CPrinterCairo.cpp:346
CPrinterCairo(CPrinterCairo &&other)=delete
EOutputPrinterType m_outputPrinterType
Definition CPrinterCairo.hpp:63
void beginDocument(uint64_t sizeXPage, uint64_t sizeYPage) override
Definition CPrinterCairo.cpp:112
void getTextSize(int32_t *widthText, int32_t *heightText) override
Definition CPrinterCairo.cpp:277
void endDocument() override
Definition CPrinterCairo.cpp:233
uint64_t getNumTotalPages() override
Definition CPrinterCairo.cpp:272
void setAlignment(iv::eFontAlignment fontAlignment) override
Definition CPrinterCairo.cpp:284
~CPrinterCairo() override
Definition CPrinterCairo.cpp:91
static CPrinterCairo * createPdf(const std::string &pathDocumentCairo)
Definition CPrinterCairo.cpp:73
void drawRectangleFilled(double x1, double y1, double x2, double y2) override
Definition CPrinterCairo.cpp:220
void drawRectangle(double x1, double y1, double x2, double y2) override
Definition CPrinterCairo.cpp:208
void drawImagePng(std::string_view nameImage, double posX, double posY, int32_t sizeY) override
Definition CPrinterCairo.cpp:166
void setFont(const std::string &fontName, iv::eFontSlant fontSlant, iv::eFontWeight fontWeight, uint64_t fontHeight) override
Definition CPrinterCairo.cpp:328
PangoLayout * m_layoutOpt
Definition CPrinterCairo.hpp:69
void drawLine(double x1, double y1, double x2, double y2) override
Definition CPrinterCairo.cpp:200
void setColorRGB(uint32_t rgb) override
Definition CPrinterCairo.cpp:316
CPrinterCairo & operator=(CPrinterCairo &&other)=delete
cairo_surface_t * m_surfaceOpt
Definition CPrinterCairo.hpp:67
Definition IPrinter.hpp:9
uint32_t color
Definition types.hpp:12
eFontWeight
Definition enums.hpp:87
eFontAlignment
Definition enums.hpp:72
eFontSlant
Definition enums.hpp:80