7#ifndef CORE_FPDFAPI_EDIT_CPDF_PAGECONTENTGENERATOR_H_
8#define CORE_FPDFAPI_EDIT_CPDF_PAGECONTENTGENERATOR_H_
15#include "core/fxcrt/bytestring.h"
16#include "core/fxcrt/fx_string_wrappers.h"
17#include "core/fxcrt/unowned_ptr.h"
22class CPDF_ImageObject;
41 void ProcessPageObject(fxcrt::ostringstream* buf,
CPDF_PageObject* pPageObj);
42 void ProcessPathPoints(fxcrt::ostringstream* buf,
CPDF_Path* pPath);
43 void ProcessPath(fxcrt::ostringstream* buf, CPDF_PathObject* pPathObj);
44 void ProcessForm(fxcrt::ostringstream* buf, CPDF_FormObject* pFormObj);
45 void ProcessImage(fxcrt::ostringstream* buf, CPDF_ImageObject* pImageObj);
46 void ProcessGraphics(fxcrt::ostringstream* buf,
CPDF_PageObject* pPageObj);
47 void ProcessDefaultGraphics(fxcrt::ostringstream* buf);
48 void ProcessText(fxcrt::ostringstream* buf, CPDF_TextObject* pTextObj);
49 ByteString GetOrCreateDefaultGraphics()
const;
50 ByteString RealizeResource(
const CPDF_Object* pResource,
51 const ByteString& bsType)
const;
55 void FinishMarks(fxcrt::ostringstream* buf,
60 std::map<int32_t, fxcrt::ostringstream> GenerateModifiedStreams();
64 void UpdateContentStreams(
65 std::map<int32_t, fxcrt::ostringstream>&& new_stream_data);
70 void UpdateStreamlessPageObjects(
int new_content_stream_index);
74 void UpdateResourcesDict();
78 std::vector<UnownedPtr<CPDF_PageObject>> m_pageObjects;
79 ByteString m_DefaultGraphicsName;
float GetLineDashPhase() const
float GetLineWidth() const
CFX_GraphStateData::LineCap GetLineCap() const
CFX_GraphStateData::LineJoin GetLineJoin() const
const CPDF_Color * GetStrokeColor() const
const CPDF_Color * GetFillColor() const
bool GetRGB(int *R, int *G, int *B) const
bool IsColorSpaceRGB() const
const ByteString & GetName() const
const ByteString & GetPropertyName() const
ParamType GetParamType() const
float GetStrokeAlpha() const
float GetFillAlpha() const
BlendMode GetBlendType() const
ByteString GetBlendMode() const
void SetImage(RetainPtr< CPDF_Image > pImage)
const CFX_Matrix & matrix() const
bool ProcessPageObjects(fxcrt::ostringstream *buf)
CPDF_PageContentGenerator(CPDF_PageObjectHolder *pObjHolder)
~CPDF_PageContentGenerator()
const CPDF_ColorState & color_state() const
void SetDirty(bool value)
const CPDF_GeneralState & general_state() const
const ByteString & GetResourceName() const
const CPDF_ClipPath & clip_path() const
virtual Type GetType() const =0
CPDF_GeneralState & mutable_general_state()
const CPDF_ContentMarks * GetContentMarks() const
void SetResourceName(const ByteString &resource_name)
const CFX_GraphState & graph_state() const
bool has_winding_filltype() const
const CFX_Matrix & matrix() const
bool has_alternate_filltype() const
bool has_no_filltype() const
CFX_Matrix GetTextMatrix() const
float GetFontSize() const
TextRenderingMode GetTextRenderMode() const
static ByteString Format(const char *pFormat,...)
ByteString & operator=(ByteString &&that) noexcept
CharType operator[](const size_t index) const
ByteString PDF_NameEncode(const ByteString &orig)