PoDoFo  1.0.0-dev
PdfContentStreamOperators.h
1 
7 #ifndef PDF_CONTENT_STREAM_OPERATORS_H
8 #define PDF_CONTENT_STREAM_OPERATORS_H
9 
10 #include <podofo/main/PdfDictionary.h>
11 #include <podofo/main/PdfStringStream.h>
12 #include <podofo/main/PdfMath.h>
13 
14 namespace PoDoFo
15 {
20 // TODO: Add missing operators
21 class PODOFO_API PdfContentStreamOperators
22 {
23 protected:
25 public:
26  virtual void re_Operator(double x, double y, double width, double height) = 0;
27  virtual void m_Operator(double x, double y) = 0;
28  virtual void l_Operator(double x, double y) = 0;
29  virtual void c_Operator(double c1x, double c1y, double c2x, double c2y, double x, double y) = 0;
30  virtual void n_Operator() = 0;
31  virtual void h_Operator() = 0;
32  virtual void b_Operator() = 0;
33  virtual void B_Operator() = 0;
34  virtual void bStar_Operator() = 0;
35  virtual void BStar_Operator() = 0;
36  virtual void s_Operator() = 0;
37  virtual void S_Operator() = 0;
38  virtual void f_Operator() = 0;
39  virtual void fStar_Operator() = 0;
40  virtual void W_Operator() = 0;
41  virtual void WStar_Operator() = 0;
42  virtual void MP_Operator(const std::string_view& tag) = 0;
43  virtual void DP_Operator(const std::string_view& tag, const PdfDictionary& properties) = 0;
44  virtual void DP_Operator(const std::string_view& tag, const std::string_view& propertyDictName) = 0;
45  virtual void BMC_Operator(const std::string_view& tag) = 0;
46  virtual void BDC_Operator(const std::string_view& tag, const PdfDictionary& properties) = 0;
47  virtual void BDC_Operator(const std::string_view& tag, const std::string_view& propertyDictName) = 0;
48  virtual void EMC_Operator() = 0;
49  virtual void q_Operator() = 0;
50  virtual void Q_Operator() = 0;
51  virtual void BT_Operator() = 0;
52  virtual void ET_Operator() = 0;
53  virtual void Td_Operator(double tx, double ty) = 0;
54  virtual void Tm_Operator(double a, double b, double c, double d, double e, double f) = 0;
55  virtual void Tr_Operator(PdfTextRenderingMode mode) = 0;
56  virtual void Ts_Operator(double rise) = 0;
57  virtual void Tc_Operator(double charSpace) = 0;
58  virtual void TL_Operator(double leading) = 0;
59  virtual void Tf_Operator(const std::string_view& fontName, double fontSize) = 0;
60  virtual void Tw_Operator(double wordSpace) = 0;
61  virtual void Tz_Operator(double scale) = 0;
62  virtual void Tj_Operator(const std::string_view& encoded, bool hex) = 0;
63  virtual void TJ_Operator_Begin() = 0;
64  virtual void TJ_Operator_Delta(double delta) = 0;
65  virtual void TJ_Operator_Glyphs(const std::string_view& encoded, bool hex) = 0;
66  virtual void TJ_Operator_End() = 0;
67  virtual void cm_Operator(double a, double b, double c, double d, double e, double f) = 0;
68  virtual void w_Operator(double lineWidth) = 0;
69  virtual void J_Operator(PdfLineCapStyle style) = 0;
70  virtual void j_Operator(PdfLineJoinStyle style) = 0;
71  virtual void M_Operator(double miterLimit) = 0;
72  virtual void d_Operator(const cspan<double>& dashArray, double fase) = 0;
73  virtual void ri_Operator(const std::string_view& intent) = 0;
74  virtual void i_Operator(double flatness) = 0;
75  virtual void gs_Operator(const std::string_view& dictName) = 0;
76  virtual void Do_Operator(const std::string_view& xobjname) = 0;
77  virtual void cs_Operator(PdfColorSpaceType colorSpace) = 0;
78  virtual void cs_Operator(const std::string_view& name) = 0;
79  virtual void CS_Operator(PdfColorSpaceType colorSpace) = 0;
80  virtual void CS_Operator(const std::string_view& name) = 0;
81  virtual void sc_Operator(const cspan<double>& components) = 0;
82  virtual void SC_Operator(const cspan<double>& components) = 0;
83  virtual void scn_Operator(const cspan<double>& components) = 0;
84  virtual void SCN_Operator(const cspan<double>& components) = 0;
85  virtual void scn_Operator(const cspan<double>& components, const std::string_view& patternName) = 0;
86  virtual void SCN_Operator(const cspan<double>& components, const std::string_view& patternName) = 0;
87  virtual void scn_Operator(const std::string_view& patternName) = 0;
88  virtual void SCN_Operator(const std::string_view& patternName) = 0;
89  virtual void G_Operator(double gray) = 0;
90  virtual void g_Operator(double gray) = 0;
91  virtual void RG_Operator(double red, double green, double blue) = 0;
92  virtual void rg_Operator(double red, double green, double blue) = 0;
93  virtual void K_Operator(double cyan, double magenta, double yellow, double black) = 0;
94  virtual void k_Operator(double cyan, double magenta, double yellow, double black) = 0;
95  virtual void BX_Operator() = 0;
96  virtual void EX_Operator() = 0;
97  virtual void Extension_Operator(const std::string_view& opName, const cspan<PdfVariant>& operands) = 0;
98 protected:
100  PdfContentStreamOperators& operator=(const PdfContentStreamOperators&) = default;
101 };
102 
103 }
104 
105 #endif // PDF_CONTENT_STREAM_OPERATORS_H
Pdf content stream callble operator interface ISO 32000 - 1:2008 "A.2 PDF Content Stream Operators".
Definition: PdfContentStreamOperators.h:22
The PDF dictionary data type of PoDoFo (inherits from PdfDataContainer, the base class for such repre...
Definition: PdfDictionary.h:82
SPDX-FileCopyrightText: (C) 2022 Francesco Pretto ceztko@gmail.com SPDX-License-Identifier: LGPL-2....
Definition: basetypes.h:16
PdfLineCapStyle
Enum for line cap styles when drawing.
Definition: PdfDeclarations.h:403
PdfTextRenderingMode
Enum for text rendering mode (Tr)
Definition: PdfDeclarations.h:363
tcb::span< const T, Extent > cspan
Constant span.
Definition: span.h:13
PdfColorSpaceType
Enum for the colorspaces supported by PDF.
Definition: PdfDeclarations.h:330
PdfLineJoinStyle
Enum for line join styles when drawing.
Definition: PdfDeclarations.h:413