7#include "core/fpdfdoc/cpdf_defaultappearance.h"
12#include "core/fpdfapi/parser/cpdf_simple_parser.h"
13#include "core/fpdfapi/parser/fpdf_parser_utility.h"
14#include "core/fxcrt/fx_string.h"
15#include "core/fxcrt/notreached.h"
16#include "core/fxge/cfx_color.h"
27 std::vector<uint32_t> pBuf(nParams);
34 if (buf_index == nParams)
38 if (buf_count > nParams)
46 if (buf_count < nParams)
66 float* fFontSize)
const {
73 if (FindTagParamFromStart(&syntax,
"Tf", 2)) {
75 csFontNameTag.Delete(0, 1);
76 *fFontSize = StringToFloat(syntax
.GetWord());
78 return PDF_NameDecode(csFontNameTag.AsStringView());
86 if (FindTagParamFromStart(&syntax,
"g", 1)) {
87 float gray = StringToFloat(syntax
.GetWord());
90 if (FindTagParamFromStart(&syntax,
"rg", 3)) {
91 float r = StringToFloat(syntax
.GetWord());
92 float g = StringToFloat(syntax
.GetWord());
93 float b = StringToFloat(syntax
.GetWord());
96 if (FindTagParamFromStart(&syntax,
"k", 4)) {
97 float c = StringToFloat(syntax
.GetWord());
98 float m = StringToFloat(syntax
.GetWord());
99 float y = StringToFloat(syntax
.GetWord());
100 float k = StringToFloat(syntax
.GetWord());
109 if (!maybe_color.has_value())
112 const CFX_Color& color = maybe_color.value();
114 int g =
static_cast<
int>(color
.fColor1 * 255 + 0.5f);
119 int r =
static_cast<
int>(color
.fColor1 * 255 + 0.5f);
120 int g =
static_cast<
int>(color
.fColor2 * 255 + 0.5f);
121 int b =
static_cast<
int>(color
.fColor3 * 255 + 0.5f);
132 static_cast<
int>(g * 255 + 0.5f)
,
133 static_cast<
int>(b * 255 + 0.5f)
));
143 return FindTagParamFromStart(parser, token, nParams);
fxcrt::ByteString ByteString
std::optional< ByteString > GetFont(float *fFontSize) const
~CPDF_DefaultAppearance()
CPDF_DefaultAppearance(const ByteString &csDA)
static bool FindTagParamFromStartForTesting(CPDF_SimpleParser *parser, ByteStringView token, int nParams)
std::optional< CFX_Color > GetColor() const
std::optional< CFX_Color::TypeAndARGB > GetColorARGB() const
CPDF_DefaultAppearance(const CPDF_DefaultAppearance &cDA)
uint32_t GetCurrentPosition() const
void SetCurrentPosition(uint32_t position)
ByteString & operator=(ByteString &&that) noexcept
constexpr FX_ARGB ArgbEncode(uint32_t a, uint32_t r, uint32_t g, uint32_t b)
#define NOTREACHED_NORETURN()
fxcrt::ByteStringView ByteStringView
TypeAndARGB(CFX_Color::Type type_in, FX_ARGB argb_in)
constexpr CFX_Color(Type type=CFX_Color::Type::kTransparent, float color1=0.0f, float color2=0.0f, float color3=0.0f, float color4=0.0f)