Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(182)

Side by Side Diff: core/src/fpdfapi/fpdf_page/pageint.h

Issue 453133004: clang-format all code (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 PDFium Authors. All rights reserved. 1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 6
7 #include "../../../include/fpdfapi/fpdf_pageobj.h" 7 #include "../../../include/fpdfapi/fpdf_pageobj.h"
8 #define PARSE_STEP_LIMIT» » 100 8 #define PARSE_STEP_LIMIT 100
9 #define STREAM_PARSE_BUFSIZE» 20480 9 #define STREAM_PARSE_BUFSIZE 20480
10 class CPDF_QuickFontCache; 10 class CPDF_QuickFontCache;
11 #ifndef _FPDFAPI_MINI_ 11 #ifndef _FPDFAPI_MINI_
12 class CPDF_StreamParser : public CFX_Object 12 class CPDF_StreamParser : public CFX_Object {
13 { 13 public:
14 public: 14 CPDF_StreamParser(const FX_BYTE* pData, FX_DWORD dwSize);
15 15 ~CPDF_StreamParser();
16 CPDF_StreamParser(const FX_BYTE* pData, FX_DWORD dwSize); 16
17 ~CPDF_StreamParser(); 17 CPDF_Stream* ReadInlineStream(CPDF_Document* pDoc,
18 18 CPDF_Dictionary* pDict,
19 CPDF_Stream*» » ReadInlineStream(CPDF_Document* pDoc, CPDF_Dicti onary* pDict, CPDF_Object* pCSObj, FX_BOOL bDecode); 19 CPDF_Object* pCSObj,
20 typedef enum { EndOfData, Number, Keyword, Name, Others } SyntaxType; 20 FX_BOOL bDecode);
21 21 typedef enum { EndOfData, Number, Keyword, Name, Others } SyntaxType;
22 SyntaxType» » » ParseNextElement(); 22
23 FX_LPBYTE» » » GetWordBuf() 23 SyntaxType ParseNextElement();
24 { 24 FX_LPBYTE GetWordBuf() { return m_WordBuffer; }
25 return m_WordBuffer; 25 FX_DWORD GetWordSize() { return m_WordSize; }
26 } 26 CPDF_Object* GetObject() {
27 FX_DWORD» » » GetWordSize() 27 CPDF_Object* pObj = m_pLastObj;
28 { 28 m_pLastObj = NULL;
29 return m_WordSize; 29 return pObj;
30 } 30 }
31 CPDF_Object*» » GetObject() 31 FX_DWORD GetPos() { return m_Pos; }
32 { 32 void SetPos(FX_DWORD pos) { m_Pos = pos; }
33 CPDF_Object* pObj = m_pLastObj; 33
34 m_pLastObj = NULL; 34 CPDF_Object* ReadNextObject(FX_BOOL bAllowNestedArray = FALSE,
35 return pObj; 35 FX_BOOL bInArray = FALSE);
36 } 36 void SkipPathObject();
37 FX_DWORD» » » GetPos() 37
38 { 38 protected:
39 return m_Pos; 39 void GetNextWord(FX_BOOL& bIsNumber);
40 } 40 CFX_ByteString ReadString();
41 void» » » » SetPos(FX_DWORD pos) 41 CFX_ByteString ReadHexString();
42 { 42 const FX_BYTE* m_pBuf;
43 m_Pos = pos; 43 FX_DWORD m_Size;
44 } 44 FX_DWORD m_Pos;
45 45 FX_BYTE m_WordBuffer[256];
46 CPDF_Object*» » ReadNextObject(FX_BOOL bAllowNestedArray = FALSE , FX_BOOL bInArray = FALSE); 46 FX_DWORD m_WordSize;
47 void» » » » SkipPathObject(); 47 CPDF_Object* m_pLastObj;
48 protected:
49 void» » » » GetNextWord(FX_BOOL& bIsNumber);
50 CFX_ByteString» » ReadString();
51 CFX_ByteString» » ReadHexString();
52 const FX_BYTE*» » m_pBuf;
53 FX_DWORD» » » m_Size;
54 FX_DWORD» » » m_Pos;
55 FX_BYTE» » » » m_WordBuffer[256];
56 FX_DWORD» » » m_WordSize;
57 CPDF_Object*» » m_pLastObj;
58 }; 48 };
59 #endif 49 #endif
60 typedef enum { 50 typedef enum {
61 PDFOP_CloseFillStrokePath = 0, PDFOP_FillStrokePath, 51 PDFOP_CloseFillStrokePath = 0,
62 PDFOP_CloseEOFillStrokePath, PDFOP_EOFillStrokePath, 52 PDFOP_FillStrokePath,
63 PDFOP_BeginMarkedContent_Dictionary, PDFOP_BeginImage, 53 PDFOP_CloseEOFillStrokePath,
64 PDFOP_BeginMarkedContent, PDFOP_BeginText, 54 PDFOP_EOFillStrokePath,
65 PDFOP_BeginSectionUndefined, PDFOP_CurveTo_123, 55 PDFOP_BeginMarkedContent_Dictionary,
66 PDFOP_ConcatMatrix, PDFOP_SetColorSpace_Fill, 56 PDFOP_BeginImage,
67 PDFOP_SetColorSpace_Stroke, PDFOP_SetDash, 57 PDFOP_BeginMarkedContent,
68 PDFOP_SetCharWidth, PDFOP_SetCachedDevice, 58 PDFOP_BeginText,
69 PDFOP_ExecuteXObject, PDFOP_MarkPlace_Dictionary, 59 PDFOP_BeginSectionUndefined,
70 PDFOP_EndImage, PDFOP_EndMarkedContent, 60 PDFOP_CurveTo_123,
71 PDFOP_EndText, PDFOP_EndSectionUndefined, 61 PDFOP_ConcatMatrix,
72 PDFOP_FillPath, PDFOP_FillPathOld, 62 PDFOP_SetColorSpace_Fill,
73 PDFOP_EOFillPath, PDFOP_SetGray_Fill, 63 PDFOP_SetColorSpace_Stroke,
74 PDFOP_SetGray_Stroke, PDFOP_SetExtendGraphState, 64 PDFOP_SetDash,
75 PDFOP_ClosePath, PDFOP_SetFlat, 65 PDFOP_SetCharWidth,
76 PDFOP_BeginImageData, PDFOP_SetLineJoin, 66 PDFOP_SetCachedDevice,
77 PDFOP_SetLineCap, PDFOP_SetCMYKColor_Fill, 67 PDFOP_ExecuteXObject,
78 PDFOP_SetCMYKColor_Stroke, PDFOP_LineTo, 68 PDFOP_MarkPlace_Dictionary,
79 PDFOP_MoveTo, PDFOP_SetMiterLimit, 69 PDFOP_EndImage,
80 PDFOP_MarkPlace, PDFOP_EndPath, 70 PDFOP_EndMarkedContent,
81 PDFOP_SaveGraphState, PDFOP_RestoreGraphState, 71 PDFOP_EndText,
82 PDFOP_Rectangle, PDFOP_SetRGBColor_Fill, 72 PDFOP_EndSectionUndefined,
83 PDFOP_SetRGBColor_Stroke, PDFOP_SetRenderIntent, 73 PDFOP_FillPath,
84 PDFOP_CloseStrokePath, PDFOP_StrokePath, 74 PDFOP_FillPathOld,
85 PDFOP_SetColor_Fill, PDFOP_SetColor_Stroke, 75 PDFOP_EOFillPath,
86 PDFOP_SetColorPS_Fill, PDFOP_SetColorPS_Stroke, 76 PDFOP_SetGray_Fill,
87 PDFOP_ShadeFill, PDFOP_SetCharSpace, 77 PDFOP_SetGray_Stroke,
88 PDFOP_MoveTextPoint, PDFOP_MoveTextPoint_SetLeading, 78 PDFOP_SetExtendGraphState,
89 PDFOP_SetFont, PDFOP_ShowText, 79 PDFOP_ClosePath,
90 PDFOP_ShowText_Positioning, PDFOP_SetTextLeading, 80 PDFOP_SetFlat,
91 PDFOP_SetTextMatrix, PDFOP_SetTextRenderMode, 81 PDFOP_BeginImageData,
92 PDFOP_SetTextRise, PDFOP_SetWordSpace, 82 PDFOP_SetLineJoin,
93 PDFOP_SetHorzScale, PDFOP_MoveToNextLine, 83 PDFOP_SetLineCap,
94 PDFOP_CurveTo_23, PDFOP_SetLineWidth, 84 PDFOP_SetCMYKColor_Fill,
95 PDFOP_Clip, PDFOP_EOClip, 85 PDFOP_SetCMYKColor_Stroke,
96 PDFOP_CurveTo_13, PDFOP_NextLineShowText, 86 PDFOP_LineTo,
97 PDFOP_NextLineShowText_Space, PDFOP_Invalid 87 PDFOP_MoveTo,
88 PDFOP_SetMiterLimit,
89 PDFOP_MarkPlace,
90 PDFOP_EndPath,
91 PDFOP_SaveGraphState,
92 PDFOP_RestoreGraphState,
93 PDFOP_Rectangle,
94 PDFOP_SetRGBColor_Fill,
95 PDFOP_SetRGBColor_Stroke,
96 PDFOP_SetRenderIntent,
97 PDFOP_CloseStrokePath,
98 PDFOP_StrokePath,
99 PDFOP_SetColor_Fill,
100 PDFOP_SetColor_Stroke,
101 PDFOP_SetColorPS_Fill,
102 PDFOP_SetColorPS_Stroke,
103 PDFOP_ShadeFill,
104 PDFOP_SetCharSpace,
105 PDFOP_MoveTextPoint,
106 PDFOP_MoveTextPoint_SetLeading,
107 PDFOP_SetFont,
108 PDFOP_ShowText,
109 PDFOP_ShowText_Positioning,
110 PDFOP_SetTextLeading,
111 PDFOP_SetTextMatrix,
112 PDFOP_SetTextRenderMode,
113 PDFOP_SetTextRise,
114 PDFOP_SetWordSpace,
115 PDFOP_SetHorzScale,
116 PDFOP_MoveToNextLine,
117 PDFOP_CurveTo_23,
118 PDFOP_SetLineWidth,
119 PDFOP_Clip,
120 PDFOP_EOClip,
121 PDFOP_CurveTo_13,
122 PDFOP_NextLineShowText,
123 PDFOP_NextLineShowText_Space,
124 PDFOP_Invalid
98 } PDFOP; 125 } PDFOP;
99 #define PARAM_BUF_SIZE» 16 126 #define PARAM_BUF_SIZE 16
100 typedef struct { 127 typedef struct {
101 int»» » m_Type; 128 int m_Type;
102 union { 129 union {
103 struct { 130 struct {
104 FX_BOOL» » m_bInteger; 131 FX_BOOL m_bInteger;
105 union { 132 union {
106 int» » m_Integer; 133 int m_Integer;
107 FX_FLOAT m_Float; 134 FX_FLOAT m_Float;
108 }; 135 };
109 } m_Number; 136 } m_Number;
110 CPDF_Object*» m_pObject; 137 CPDF_Object* m_pObject;
111 struct { 138 struct {
112 int»» » m_Len; 139 int m_Len;
113 char» » m_Buffer[32]; 140 char m_Buffer[32];
114 } m_Name; 141 } m_Name;
115 }; 142 };
116 } _ContentParam; 143 } _ContentParam;
117 #if defined(_FPDFAPI_MINI_) 144 #if defined(_FPDFAPI_MINI_)
118 #define _FPDF_MAX_FORM_LEVEL_» » 17 145 #define _FPDF_MAX_FORM_LEVEL_ 17
119 #else 146 #else
120 #define _FPDF_MAX_FORM_LEVEL_» » 30 147 #define _FPDF_MAX_FORM_LEVEL_ 30
121 #endif 148 #endif
122 #define _FPDF_MAX_TYPE3_FORM_LEVEL_» 4 149 #define _FPDF_MAX_TYPE3_FORM_LEVEL_ 4
123 #define _FPDF_MAX_OBJECT_STACK_SIZE_ 512 150 #define _FPDF_MAX_OBJECT_STACK_SIZE_ 512
124 class CPDF_StreamContentParser : public CFX_Object 151 class CPDF_StreamContentParser : public CFX_Object {
125 { 152 public:
126 public: 153 CPDF_StreamContentParser();
127 CPDF_StreamContentParser(); 154 ~CPDF_StreamContentParser();
128 ~CPDF_StreamContentParser(); 155 FX_BOOL Initialize();
129 FX_BOOL Initialize(); 156 void PrepareParse(CPDF_Document* pDoc,
130 void PrepareParse(CPDF_Document* pDoc, CPDF_Dictionary* pPageResource s, CPDF_Dictionary* pParentResources, 157 CPDF_Dictionary* pPageResources,
131 CFX_AffineMatrix* pmtContentToUser, 158 CPDF_Dictionary* pParentResources,
132 CPDF_PageObjects* pObjList, CPDF_Dictionary* pResources , 159 CFX_AffineMatrix* pmtContentToUser,
133 CFX_FloatRect* pBBox, CPDF_ParseOptions* pOptions, 160 CPDF_PageObjects* pObjList,
134 CPDF_AllStates* pAllStates, int level); 161 CPDF_Dictionary* pResources,
135 CPDF_Document* m_pDocument; 162 CFX_FloatRect* pBBox,
136 CPDF_Dictionary* m_pPageResources; 163 CPDF_ParseOptions* pOptions,
137 CPDF_Dictionary* m_pParentResources; 164 CPDF_AllStates* pAllStates,
138 CPDF_PageObjects* m_pObjectList; 165 int level);
139 CPDF_Dictionary* m_pResources; 166 CPDF_Document* m_pDocument;
140 int m_Level; 167 CPDF_Dictionary* m_pPageResources;
141 CFX_AffineMatrix m_mtContentToUser; 168 CPDF_Dictionary* m_pParentResources;
142 CFX_FloatRect m_BBox; 169 CPDF_PageObjects* m_pObjectList;
143 CPDF_ParseOptions m_Options; 170 CPDF_Dictionary* m_pResources;
144 _ContentParam m_ParamBuf1[PARAM_BUF_SIZE]; 171 int m_Level;
145 FX_DWORD m_ParamStartPos; 172 CFX_AffineMatrix m_mtContentToUser;
146 FX_DWORD m_ParamCount; 173 CFX_FloatRect m_BBox;
147 void AddNumberParam(FX_LPCSTR str, int len); 174 CPDF_ParseOptions m_Options;
148 void AddObjectParam(CPDF_Object* pObj); 175 _ContentParam m_ParamBuf1[PARAM_BUF_SIZE];
149 void AddNameParam(FX_LPCSTR name, int size); 176 FX_DWORD m_ParamStartPos;
150 int GetNextParamPos(); 177 FX_DWORD m_ParamCount;
151 void ClearAllParams(); 178 void AddNumberParam(FX_LPCSTR str, int len);
152 CPDF_Object* GetObject(FX_DWORD index); 179 void AddObjectParam(CPDF_Object* pObj);
153 CFX_ByteString GetString(FX_DWORD index); 180 void AddNameParam(FX_LPCSTR name, int size);
154 FX_FLOAT GetNumber(FX_DWORD index); 181 int GetNextParamPos();
155 FX_FLOAT GetNumber16(FX_DWORD index); 182 void ClearAllParams();
156 int GetInteger(FX_DWORD index) 183 CPDF_Object* GetObject(FX_DWORD index);
157 { 184 CFX_ByteString GetString(FX_DWORD index);
158 return (FX_INT32)(GetNumber(index)); 185 FX_FLOAT GetNumber(FX_DWORD index);
186 FX_FLOAT GetNumber16(FX_DWORD index);
187 int GetInteger(FX_DWORD index) { return (FX_INT32)(GetNumber(index)); }
188 FX_BOOL OnOperator(FX_LPCSTR op);
189 void BigCaseCaller(int index);
190 FX_BOOL m_bAbort;
191 #ifndef _FPDFAPI_MINI_
192 CPDF_StreamParser* m_pSyntax;
193 FX_DWORD GetParsePos() { return m_pSyntax->GetPos(); }
194 #else
195 int m_WordState;
196 void InputData(FX_LPCBYTE src_buf, FX_DWORD src_size);
197 void Finish();
198 void StartArray();
199 void EndArray();
200 void StartDict();
201 void EndDict();
202 void EndName();
203 void EndNumber();
204 void EndKeyword();
205 void EndHexString();
206 void EndString();
207 void EndImageDict();
208 void EndInlineImage();
209 FX_LPBYTE m_pWordBuf;
210 FX_DWORD m_WordSize;
211 CFX_BinaryBuf m_StringBuf;
212 int m_StringLevel, m_StringState, m_EscCode;
213 void AddContainer(CPDF_Object* pObject);
214 FX_BOOL SetToCurObj(CPDF_Object* pObject);
215 FX_LPBYTE m_pDictName;
216 FX_BOOL m_bDictName;
217 CPDF_Object** m_pObjectStack;
218 FX_BOOL* m_pObjectState;
219 FX_DWORD m_ObjectSize;
220 int m_InlineImageState;
221 FX_BYTE m_InlineWhiteChar;
222 CFX_BinaryBuf m_ImageSrcBuf;
223 FX_LPBYTE m_pStreamBuf;
224 #endif
225 CPDF_AllStates* m_pCurStates;
226 CPDF_ContentMark m_CurContentMark;
227 CFX_PtrArray m_ClipTextList;
228 CPDF_TextObject* m_pLastTextObject;
229 FX_FLOAT m_DefFontSize;
230 void AddTextObject(CFX_ByteString* pText,
231 FX_FLOAT fInitKerning,
232 FX_FLOAT* pKerning,
233 int count);
234
235 void ConvertUserSpace(FX_FLOAT& x, FX_FLOAT& y);
236 void ConvertTextSpace(FX_FLOAT& x, FX_FLOAT& y);
237 void OnChangeTextMatrix();
238 #ifndef _FPDFAPI_MINI_
239 FX_DWORD Parse(FX_LPCBYTE pData, FX_DWORD dwSize, FX_DWORD max_cost);
240 void ParsePathObject();
241 #endif
242 int m_CompatCount;
243 FX_PATHPOINT* m_pPathPoints;
244 int m_PathPointCount;
245 int m_PathAllocSize;
246 FX_FLOAT m_PathStartX, m_PathStartY;
247 FX_FLOAT m_PathCurrentX, m_PathCurrentY;
248 int m_PathClipType;
249 void AddPathPoint(FX_FLOAT x, FX_FLOAT y, int flag);
250 void AddPathRect(FX_FLOAT x, FX_FLOAT y, FX_FLOAT w, FX_FLOAT h);
251 void AddPathObject(int FillType, FX_BOOL bStroke);
252 CPDF_ImageObject* AddImage(CPDF_Stream* pStream,
253 CPDF_Image* pImage,
254 FX_BOOL bInline);
255 void AddDuplicateImage();
256 void AddForm(CPDF_Stream*);
257 CFX_ByteString m_LastImageName;
258 CPDF_Image* m_pLastImage;
259 CFX_BinaryBuf m_LastImageDict, m_LastImageData;
260 CPDF_Dictionary* m_pLastImageDict;
261 CPDF_Dictionary* m_pLastCloneImageDict;
262 FX_BOOL m_bReleaseLastDict;
263 FX_BOOL m_bSameLastDict;
264 void SetGraphicStates(CPDF_PageObject* pObj,
265 FX_BOOL bColor,
266 FX_BOOL bText,
267 FX_BOOL bGraph);
268 FX_BOOL m_bColored;
269 FX_FLOAT m_Type3Data[6];
270 FX_BOOL m_bResourceMissing;
271 CFX_PtrArray m_StateStack;
272 void SaveStates(CPDF_AllStates*);
273 void RestoreStates(CPDF_AllStates*);
274 CPDF_Font* FindFont(const CFX_ByteString& name);
275 CPDF_ColorSpace* FindColorSpace(const CFX_ByteString& name);
276 CPDF_Pattern* FindPattern(const CFX_ByteString& name, FX_BOOL bShading);
277 CPDF_Object* FindResourceObj(FX_BSTR type, const CFX_ByteString& name);
278 void Handle_CloseFillStrokePath();
279 void Handle_FillStrokePath();
280 void Handle_CloseEOFillStrokePath();
281 void Handle_EOFillStrokePath();
282 void Handle_BeginMarkedContent_Dictionary();
283 void Handle_BeginImage();
284 void Handle_BeginMarkedContent();
285 void Handle_BeginText();
286 void Handle_BeginSectionUndefined();
287 void Handle_CurveTo_123();
288 void Handle_ConcatMatrix();
289 void Handle_SetColorSpace_Fill();
290 void Handle_SetColorSpace_Stroke();
291 void Handle_SetDash();
292 void Handle_SetCharWidth();
293 void Handle_SetCachedDevice();
294 void Handle_ExecuteXObject();
295 void Handle_MarkPlace_Dictionary();
296 void Handle_EndImage();
297 void Handle_EndMarkedContent();
298 void Handle_EndText();
299 void Handle_EndSectionUndefined();
300 void Handle_FillPath();
301 void Handle_FillPathOld();
302 void Handle_EOFillPath();
303 void Handle_SetGray_Fill();
304 void Handle_SetGray_Stroke();
305 void Handle_SetExtendGraphState();
306 void Handle_ClosePath();
307 void Handle_SetFlat();
308 void Handle_BeginImageData();
309 void Handle_SetLineJoin();
310 void Handle_SetLineCap();
311 void Handle_SetCMYKColor_Fill();
312 void Handle_SetCMYKColor_Stroke();
313 void Handle_LineTo();
314 void Handle_MoveTo();
315 void Handle_SetMiterLimit();
316 void Handle_MarkPlace();
317 void Handle_EndPath();
318 void Handle_SaveGraphState();
319 void Handle_RestoreGraphState();
320 void Handle_Rectangle();
321 void Handle_SetRGBColor_Fill();
322 void Handle_SetRGBColor_Stroke();
323 void Handle_SetRenderIntent();
324 void Handle_CloseStrokePath();
325 void Handle_StrokePath();
326 void Handle_SetColor_Fill();
327 void Handle_SetColor_Stroke();
328 void Handle_SetColorPS_Fill();
329 void Handle_SetColorPS_Stroke();
330 void Handle_ShadeFill();
331 void Handle_SetCharSpace();
332 void Handle_MoveTextPoint();
333 void Handle_MoveTextPoint_SetLeading();
334 void Handle_SetFont();
335 void Handle_ShowText();
336 void Handle_ShowText_Positioning();
337 void Handle_SetTextLeading();
338 void Handle_SetTextMatrix();
339 void Handle_SetTextRenderMode();
340 void Handle_SetTextRise();
341 void Handle_SetWordSpace();
342 void Handle_SetHorzScale();
343 void Handle_MoveToNextLine();
344 void Handle_CurveTo_23();
345 void Handle_SetLineWidth();
346 void Handle_Clip();
347 void Handle_EOClip();
348 void Handle_CurveTo_13();
349 void Handle_NextLineShowText();
350 void Handle_NextLineShowText_Space();
351 void Handle_Invalid();
352 };
353 class CPDF_ContentParser : public CFX_Object {
354 public:
355 CPDF_ContentParser();
356 ~CPDF_ContentParser();
357 typedef enum { Ready, ToBeContinued, Done } ParseStatus;
358 ParseStatus GetStatus() { return m_Status; }
359 void Start(CPDF_Page* pPage, CPDF_ParseOptions* pOptions);
360 void Start(CPDF_Form* pForm,
361 CPDF_AllStates* pGraphicStates,
362 CFX_AffineMatrix* pParentMatrix,
363 CPDF_Type3Char* pType3Char,
364 CPDF_ParseOptions* pOptions,
365 int level);
366 void Continue(IFX_Pause* pPause);
367 int EstimateProgress();
368
369 protected:
370 void Clear();
371 ParseStatus m_Status;
372 CPDF_PageObjects* m_pObjects;
373 FX_BOOL m_bForm;
374 CPDF_ParseOptions m_Options;
375 CPDF_Type3Char* m_pType3Char;
376 int m_InternalStage;
377 CPDF_StreamAcc* m_pSingleStream;
378 CPDF_StreamAcc** m_pStreamArray;
379 FX_DWORD m_nStreams;
380 FX_LPBYTE m_pData;
381 FX_DWORD m_Size;
382 class CPDF_StreamContentParser* m_pParser;
383 FX_DWORD m_CurrentOffset;
384 CPDF_StreamFilter* m_pStreamFilter;
385 };
386 class CPDF_AllStates : public CPDF_GraphicStates {
387 public:
388 CPDF_AllStates();
389 ~CPDF_AllStates();
390 void Copy(const CPDF_AllStates& src);
391 void ProcessExtGS(CPDF_Dictionary* pGS, CPDF_StreamContentParser* pParser);
392 void SetLineDash(CPDF_Array*, FX_FLOAT, FX_FLOAT scale);
393 CFX_AffineMatrix m_TextMatrix, m_CTM, m_ParentMatrix;
394 FX_FLOAT m_TextX, m_TextY, m_TextLineX, m_TextLineY;
395 FX_FLOAT m_TextLeading, m_TextRise, m_TextHorzScale;
396 };
397 template <class ObjClass>
398 class CPDF_CountedObject : public CFX_Object {
399 public:
400 ObjClass m_Obj;
401 FX_DWORD m_nCount;
402 };
403 typedef CFX_MapPtrTemplate<CPDF_Dictionary*, CPDF_CountedObject<CPDF_Font*>*>
404 CPDF_FontMap;
405 typedef CFX_MapPtrTemplate<CPDF_Object*, CPDF_CountedObject<CPDF_ColorSpace*>*>
406 CPDF_ColorSpaceMap;
407 typedef CFX_MapPtrTemplate<CPDF_Object*, CPDF_CountedObject<CPDF_Pattern*>*>
408 CPDF_PatternMap;
409 typedef CFX_MapPtrTemplate<FX_DWORD, CPDF_CountedObject<CPDF_Image*>*>
410 CPDF_ImageMap;
411 typedef CFX_MapPtrTemplate<CPDF_Stream*, CPDF_CountedObject<CPDF_IccProfile*>*>
412 CPDF_IccProfileMap;
413 typedef CFX_MapPtrTemplate<CPDF_Stream*, CPDF_CountedObject<CPDF_StreamAcc*>*>
414 CPDF_FontFileMap;
415 template <class KeyType, class ValueType>
416 KeyType PDF_DocPageData_FindValue(
417 const CFX_MapPtrTemplate<KeyType, CPDF_CountedObject<ValueType>*>& map,
418 ValueType findValue,
419 CPDF_CountedObject<ValueType>*& findData) {
420 FX_POSITION pos = map.GetStartPosition();
421 while (pos) {
422 KeyType findKey;
423 map.GetNextAssoc(pos, findKey, findData);
424 if (findData->m_Obj == findValue) {
425 return findKey;
159 } 426 }
160 FX_BOOL» » » » OnOperator(FX_LPCSTR op); 427 }
161 void» » » » BigCaseCaller(int index); 428 findData = NULL;
162 FX_BOOL» » » » m_bAbort; 429 return (KeyType)(FX_UINTPTR) NULL;
163 #ifndef _FPDFAPI_MINI_
164 CPDF_StreamParser*» m_pSyntax;
165 FX_DWORD» » » GetParsePos()
166 {
167 return m_pSyntax->GetPos();
168 }
169 #else
170 int»» » » » m_WordState;
171 void» » » » InputData(FX_LPCBYTE src_buf, FX_DWORD s rc_size);
172 void» » » » Finish();
173 void» » » » StartArray();
174 void» » » » EndArray();
175 void» » » » StartDict();
176 void» » » » EndDict();
177 void» » » » EndName();
178 void» » » » EndNumber();
179 void» » » » EndKeyword();
180 void» » » » EndHexString();
181 void» » » » EndString();
182 void» » » » EndImageDict();
183 void» » » » EndInlineImage();
184 FX_LPBYTE» » » m_pWordBuf;
185 FX_DWORD» » » m_WordSize;
186 CFX_BinaryBuf» » m_StringBuf;
187 int»» » » » m_StringLevel, m_StringState, m_EscCode;
188 void» » » » AddContainer(CPDF_Object* pObject);
189 FX_BOOL» » » » SetToCurObj(CPDF_Object* pObject);
190 FX_LPBYTE» » » m_pDictName;
191 FX_BOOL» » » » m_bDictName;
192 CPDF_Object**» » m_pObjectStack;
193 FX_BOOL*» » » m_pObjectState;
194 FX_DWORD» » » m_ObjectSize;
195 int»» » » » m_InlineImageState;
196 FX_BYTE» » » » m_InlineWhiteChar;
197 CFX_BinaryBuf» » m_ImageSrcBuf;
198 FX_LPBYTE» » » m_pStreamBuf;
199 #endif
200 CPDF_AllStates*» » m_pCurStates;
201 CPDF_ContentMark» m_CurContentMark;
202 CFX_PtrArray» » m_ClipTextList;
203 CPDF_TextObject*» m_pLastTextObject;
204 FX_FLOAT» » » m_DefFontSize;
205 void» » » » AddTextObject(CFX_ByteString* pText, FX_ FLOAT fInitKerning, FX_FLOAT* pKerning, int count);
206
207 void» » » » ConvertUserSpace(FX_FLOAT& x, FX_FLOAT& y);
208 void» » » » ConvertTextSpace(FX_FLOAT& x, FX_FLOAT& y);
209 void» » » » OnChangeTextMatrix();
210 #ifndef _FPDFAPI_MINI_
211 FX_DWORD» » » Parse(FX_LPCBYTE pData, FX_DWORD dwSize, FX_DWOR D max_cost);
212 void» » » » ParsePathObject();
213 #endif
214 int»» » » » m_CompatCount;
215 FX_PATHPOINT*» » m_pPathPoints;
216 int»» » » » m_PathPointCount;
217 int»» » » » m_PathAllocSize;
218 FX_FLOAT» » » m_PathStartX, m_PathStartY;
219 FX_FLOAT» » » m_PathCurrentX, m_PathCurrentY;
220 int»» » » » m_PathClipType;
221 void» » » » AddPathPoint(FX_FLOAT x, FX_FLOAT y, int flag);
222 void» » » » AddPathRect(FX_FLOAT x, FX_FLOAT y, FX_F LOAT w, FX_FLOAT h);
223 void» » » » AddPathObject(int FillType, FX_BOOL bStr oke);
224 CPDF_ImageObject*» AddImage(CPDF_Stream* pStream, CPDF_Image* pImage, FX_BO OL bInline);
225 void» » » » AddDuplicateImage();
226 void» » » » AddForm(CPDF_Stream*);
227 CFX_ByteString» » m_LastImageName;
228 CPDF_Image*»» » m_pLastImage;
229 CFX_BinaryBuf» » m_LastImageDict, m_LastImageData;
230 CPDF_Dictionary*» m_pLastImageDict;
231 CPDF_Dictionary* m_pLastCloneImageDict;
232 FX_BOOL» » » » m_bReleaseLastDict;
233 FX_BOOL» » » » m_bSameLastDict;
234 void» » » » SetGraphicStates(CPDF_PageObject* pObj, FX_BOOL bColor, FX_BOOL bText, FX_BOOL bGraph);
235 FX_BOOL» » » » m_bColored;
236 FX_FLOAT» » » m_Type3Data[6];
237 FX_BOOL» » » » m_bResourceMissing;
238 CFX_PtrArray» » m_StateStack;
239 void» » » » SaveStates(CPDF_AllStates*);
240 void» » » » RestoreStates(CPDF_AllStates*);
241 CPDF_Font*» » » FindFont(const CFX_ByteString& name);
242 CPDF_ColorSpace*» FindColorSpace(const CFX_ByteString& name);
243 CPDF_Pattern*» » FindPattern(const CFX_ByteString& name, FX_BOOL bShading);
244 CPDF_Object*» » FindResourceObj(FX_BSTR type, const CFX_ByteStri ng& name);
245 void Handle_CloseFillStrokePath();
246 void Handle_FillStrokePath();
247 void Handle_CloseEOFillStrokePath();
248 void Handle_EOFillStrokePath();
249 void Handle_BeginMarkedContent_Dictionary();
250 void Handle_BeginImage();
251 void Handle_BeginMarkedContent();
252 void Handle_BeginText();
253 void Handle_BeginSectionUndefined();
254 void Handle_CurveTo_123();
255 void Handle_ConcatMatrix();
256 void Handle_SetColorSpace_Fill();
257 void Handle_SetColorSpace_Stroke();
258 void Handle_SetDash();
259 void Handle_SetCharWidth();
260 void Handle_SetCachedDevice();
261 void Handle_ExecuteXObject();
262 void Handle_MarkPlace_Dictionary();
263 void Handle_EndImage();
264 void Handle_EndMarkedContent();
265 void Handle_EndText();
266 void Handle_EndSectionUndefined();
267 void Handle_FillPath();
268 void Handle_FillPathOld();
269 void Handle_EOFillPath();
270 void Handle_SetGray_Fill();
271 void Handle_SetGray_Stroke();
272 void Handle_SetExtendGraphState();
273 void Handle_ClosePath();
274 void Handle_SetFlat();
275 void Handle_BeginImageData();
276 void Handle_SetLineJoin();
277 void Handle_SetLineCap();
278 void Handle_SetCMYKColor_Fill();
279 void Handle_SetCMYKColor_Stroke();
280 void Handle_LineTo();
281 void Handle_MoveTo();
282 void Handle_SetMiterLimit();
283 void Handle_MarkPlace();
284 void Handle_EndPath();
285 void Handle_SaveGraphState();
286 void Handle_RestoreGraphState();
287 void Handle_Rectangle();
288 void Handle_SetRGBColor_Fill();
289 void Handle_SetRGBColor_Stroke();
290 void Handle_SetRenderIntent();
291 void Handle_CloseStrokePath();
292 void Handle_StrokePath();
293 void Handle_SetColor_Fill();
294 void Handle_SetColor_Stroke();
295 void Handle_SetColorPS_Fill();
296 void Handle_SetColorPS_Stroke();
297 void Handle_ShadeFill();
298 void Handle_SetCharSpace();
299 void Handle_MoveTextPoint();
300 void Handle_MoveTextPoint_SetLeading();
301 void Handle_SetFont();
302 void Handle_ShowText();
303 void Handle_ShowText_Positioning();
304 void Handle_SetTextLeading();
305 void Handle_SetTextMatrix();
306 void Handle_SetTextRenderMode();
307 void Handle_SetTextRise();
308 void Handle_SetWordSpace();
309 void Handle_SetHorzScale();
310 void Handle_MoveToNextLine();
311 void Handle_CurveTo_23();
312 void Handle_SetLineWidth();
313 void Handle_Clip();
314 void Handle_EOClip();
315 void Handle_CurveTo_13();
316 void Handle_NextLineShowText();
317 void Handle_NextLineShowText_Space();
318 void Handle_Invalid();
319 };
320 class CPDF_ContentParser : public CFX_Object
321 {
322 public:
323 CPDF_ContentParser();
324 ~CPDF_ContentParser();
325 typedef enum { Ready, ToBeContinued, Done } ParseStatus;
326 ParseStatus»» » GetStatus()
327 {
328 return m_Status;
329 }
330 void» » » » Start(CPDF_Page* pPage, CPDF_ParseOption s* pOptions);
331 void» » » » Start(CPDF_Form* pForm, CPDF_AllStates* pGraphicStates, CFX_AffineMatrix* pParentMatrix,
332 CPDF_Type3Char* pType3Char, CPDF_ParseOptions* pOp tions, int level);
333 void» » » » Continue(IFX_Pause* pPause);
334 int»» » » » EstimateProgress();
335 protected:
336 void» » » » Clear();
337 ParseStatus»» » m_Status;
338 CPDF_PageObjects*» m_pObjects;
339 FX_BOOL» » » » m_bForm;
340 CPDF_ParseOptions» m_Options;
341 CPDF_Type3Char*» » m_pType3Char;
342 int»» » » » m_InternalStage;
343 CPDF_StreamAcc*» » m_pSingleStream;
344 CPDF_StreamAcc**» m_pStreamArray;
345 FX_DWORD» » » m_nStreams;
346 FX_LPBYTE» » » m_pData;
347 FX_DWORD» » » m_Size;
348 class CPDF_StreamContentParser*» m_pParser;
349 FX_DWORD» » » m_CurrentOffset;
350 CPDF_StreamFilter*» m_pStreamFilter;
351 };
352 class CPDF_AllStates : public CPDF_GraphicStates
353 {
354 public:
355 CPDF_AllStates();
356 ~CPDF_AllStates();
357 void» Copy(const CPDF_AllStates& src);
358 void» ProcessExtGS(CPDF_Dictionary* pGS, CPDF_StreamContentParser* pPa rser);
359 void» SetLineDash(CPDF_Array*, FX_FLOAT, FX_FLOAT scale);
360 CFX_AffineMatrix» » m_TextMatrix, m_CTM, m_ParentMatrix;
361 FX_FLOAT» » » » m_TextX, m_TextY, m_TextLineX, m_TextLin eY;
362 FX_FLOAT» » » » m_TextLeading, m_TextRise, m_TextHorzSca le;
363 };
364 template <class ObjClass> class CPDF_CountedObject : public CFX_Object
365 {
366 public:
367 ObjClass» m_Obj;
368 FX_DWORD» m_nCount;
369 };
370 typedef CFX_MapPtrTemplate<CPDF_Dictionary*, CPDF_CountedObject<CPDF_Font*>*>» » CPDF_FontMap;
371 typedef CFX_MapPtrTemplate<CPDF_Object*, CPDF_CountedObject<CPDF_ColorSpace*>*>» » CPDF_ColorSpaceMap;
372 typedef CFX_MapPtrTemplate<CPDF_Object*, CPDF_CountedObject<CPDF_Pattern*>*>» » CPDF_PatternMap;
373 typedef CFX_MapPtrTemplate<FX_DWORD, CPDF_CountedObject<CPDF_Image*>*>» » » » CPDF_ImageMap;
374 typedef CFX_MapPtrTemplate<CPDF_Stream*, CPDF_CountedObject<CPDF_IccProfile*>*>» » CPDF_IccProfileMap;
375 typedef CFX_MapPtrTemplate<CPDF_Stream*, CPDF_CountedObject<CPDF_StreamAcc*>*>» » CPDF_FontFileMap;
376 template <class KeyType, class ValueType>
377 KeyType PDF_DocPageData_FindValue(const CFX_MapPtrTemplate<KeyType, CPDF_Counted Object<ValueType>*> &map, ValueType findValue, CPDF_CountedObject<ValueType>*& f indData)
378 {
379 FX_POSITION pos = map.GetStartPosition();
380 while (pos) {
381 KeyType findKey;
382 map.GetNextAssoc(pos, findKey, findData);
383 if (findData->m_Obj == findValue) {
384 return findKey;
385 }
386 }
387 findData = NULL;
388 return (KeyType)(FX_UINTPTR)NULL;
389 } 430 }
390 template <class KeyType, class ValueType> 431 template <class KeyType, class ValueType>
391 FX_BOOL PDF_DocPageData_Release(CFX_MapPtrTemplate<KeyType, CPDF_CountedObject<V alueType>*> &map, KeyType findKey, ValueType findValue, FX_BOOL bForce = FALSE) 432 FX_BOOL PDF_DocPageData_Release(
392 { 433 CFX_MapPtrTemplate<KeyType, CPDF_CountedObject<ValueType>*>& map,
393 if (!findKey && !findValue) { 434 KeyType findKey,
394 return FALSE; 435 ValueType findValue,
395 } 436 FX_BOOL bForce = FALSE) {
396 CPDF_CountedObject<ValueType>* findData = NULL; 437 if (!findKey && !findValue) {
397 if (!findKey) {
398 findKey = PDF_DocPageData_FindValue<KeyType, ValueType>(map, findValue, findData);
399 } else if (!map.Lookup(findKey, findData)) {
400 return FALSE;
401 }
402 if (findData && ((-- findData->m_nCount) == 0 || bForce)) {
403 delete findData->m_Obj;
404 delete findData;
405 map.RemoveKey(findKey);
406 return TRUE;
407 }
408 return FALSE; 438 return FALSE;
439 }
440 CPDF_CountedObject<ValueType>* findData = NULL;
441 if (!findKey) {
442 findKey =
443 PDF_DocPageData_FindValue<KeyType, ValueType>(map, findValue, findData);
444 } else if (!map.Lookup(findKey, findData)) {
445 return FALSE;
446 }
447 if (findData && ((--findData->m_nCount) == 0 || bForce)) {
448 delete findData->m_Obj;
449 delete findData;
450 map.RemoveKey(findKey);
451 return TRUE;
452 }
453 return FALSE;
409 } 454 }
410 class CPDF_DocPageData : public CFX_Object 455 class CPDF_DocPageData : public CFX_Object {
411 { 456 public:
412 public: 457 CPDF_DocPageData(CPDF_Document* pPDFDoc);
413 CPDF_DocPageData(CPDF_Document *pPDFDoc); 458 ~CPDF_DocPageData();
414 ~CPDF_DocPageData(); 459 void Clear(FX_BOOL bRelease = FALSE);
415 void» » » » » Clear(FX_BOOL bRelease = FALSE); 460 CPDF_Font* GetFont(CPDF_Dictionary* pFontDict, FX_BOOL findOnly);
416 CPDF_Font*» » » » GetFont(CPDF_Dictionary* pFontDict, FX_B OOL findOnly); 461 CPDF_Font* GetStandardFont(FX_BSTR fontName, CPDF_FontEncoding* pEncoding);
417 CPDF_Font*» » » » GetStandardFont(FX_BSTR fontName, CPDF_F ontEncoding* pEncoding); 462 void ReleaseFont(CPDF_Dictionary* pFontDict);
418 void» » » » » ReleaseFont(CPDF_Dictionary* pFo ntDict); 463 CPDF_ColorSpace* GetColorSpace(CPDF_Object* pCSObj,
419 CPDF_ColorSpace*» » GetColorSpace(CPDF_Object* pCSObj, CPDF_Dictiona ry* pResources); 464 CPDF_Dictionary* pResources);
420 CPDF_ColorSpace*» » GetCopiedColorSpace(CPDF_Object* pCSObj); 465 CPDF_ColorSpace* GetCopiedColorSpace(CPDF_Object* pCSObj);
421 void» » » » » ReleaseColorSpace(CPDF_Object* p ColorSpace); 466 void ReleaseColorSpace(CPDF_Object* pColorSpace);
422 CPDF_Pattern*» » » GetPattern(CPDF_Object* pPatternObj, FX_ BOOL bShading, const CFX_AffineMatrix* matrix); 467 CPDF_Pattern* GetPattern(CPDF_Object* pPatternObj,
423 void» » » » » ReleasePattern(CPDF_Object* pPat ternObj); 468 FX_BOOL bShading,
424 CPDF_Image*»» » » GetImage(CPDF_Object* pImageStream); 469 const CFX_AffineMatrix* matrix);
425 void» » » » » ReleaseImage(CPDF_Object* pImage Stream); 470 void ReleasePattern(CPDF_Object* pPatternObj);
426 CPDF_IccProfile*» » GetIccProfile(CPDF_Stream* pIccProfileStream, FX _INT32 nComponents); 471 CPDF_Image* GetImage(CPDF_Object* pImageStream);
427 void» » » » » ReleaseIccProfile(CPDF_Stream* p IccProfileStream, CPDF_IccProfile* pIccProfile); 472 void ReleaseImage(CPDF_Object* pImageStream);
428 CPDF_StreamAcc*» » » GetFontFileStreamAcc(CPDF_Stream* pFontS tream); 473 CPDF_IccProfile* GetIccProfile(CPDF_Stream* pIccProfileStream,
429 void» » » » » ReleaseFontFileStreamAcc(CPDF_St ream* pFontStream, FX_BOOL bForce = FALSE); 474 FX_INT32 nComponents);
430 CPDF_Document*» » » m_pPDFDoc; 475 void ReleaseIccProfile(CPDF_Stream* pIccProfileStream,
431 CPDF_FontMap» » » m_FontMap; 476 CPDF_IccProfile* pIccProfile);
432 CPDF_ColorSpaceMap» » m_ColorSpaceMap; 477 CPDF_StreamAcc* GetFontFileStreamAcc(CPDF_Stream* pFontStream);
433 CPDF_PatternMap» » » m_PatternMap; 478 void ReleaseFontFileStreamAcc(CPDF_Stream* pFontStream,
434 CPDF_ImageMap» » » m_ImageMap; 479 FX_BOOL bForce = FALSE);
435 CPDF_IccProfileMap» » m_IccProfileMap; 480 CPDF_Document* m_pPDFDoc;
436 CFX_MapByteStringToPtr» m_HashProfileMap; 481 CPDF_FontMap m_FontMap;
437 CPDF_FontFileMap» » m_FontFileMap; 482 CPDF_ColorSpaceMap m_ColorSpaceMap;
438 }; 483 CPDF_PatternMap m_PatternMap;
439 class CPDF_Function : public CFX_Object 484 CPDF_ImageMap m_ImageMap;
440 { 485 CPDF_IccProfileMap m_IccProfileMap;
441 public: 486 CFX_MapByteStringToPtr m_HashProfileMap;
442 static CPDF_Function*» Load(CPDF_Object* pFuncObj); 487 CPDF_FontFileMap m_FontFileMap;
443 virtual ~CPDF_Function(); 488 };
444 FX_BOOL» » Call(FX_FLOAT* inputs, int ninputs, FX_FLOAT* results, i nt& nresults) const; 489 class CPDF_Function : public CFX_Object {
445 int»» » CountInputs() 490 public:
446 { 491 static CPDF_Function* Load(CPDF_Object* pFuncObj);
447 return m_nInputs; 492 virtual ~CPDF_Function();
448 } 493 FX_BOOL Call(FX_FLOAT* inputs,
449 int»» » CountOutputs() 494 int ninputs,
450 { 495 FX_FLOAT* results,
451 return m_nOutputs; 496 int& nresults) const;
452 } 497 int CountInputs() { return m_nInputs; }
453 protected: 498 int CountOutputs() { return m_nOutputs; }
454 CPDF_Function(); 499
455 int»» » m_nInputs, m_nOutputs; 500 protected:
456 FX_FLOAT*» m_pDomains; 501 CPDF_Function();
457 FX_FLOAT*» m_pRanges; 502 int m_nInputs, m_nOutputs;
458 FX_BOOL» » Init(CPDF_Object* pObj); 503 FX_FLOAT* m_pDomains;
459 virtual FX_BOOL» v_Init(CPDF_Object* pObj) = 0; 504 FX_FLOAT* m_pRanges;
460 virtual FX_BOOL» v_Call(FX_FLOAT* inputs, FX_FLOAT* results) const = 0; 505 FX_BOOL Init(CPDF_Object* pObj);
461 }; 506 virtual FX_BOOL v_Init(CPDF_Object* pObj) = 0;
462 class CPDF_IccProfile : public CFX_Object 507 virtual FX_BOOL v_Call(FX_FLOAT* inputs, FX_FLOAT* results) const = 0;
463 { 508 };
464 public: 509 class CPDF_IccProfile : public CFX_Object {
465 CPDF_IccProfile(FX_LPCBYTE pData, FX_DWORD dwSize, int nComponents); 510 public:
466 ~CPDF_IccProfile(); 511 CPDF_IccProfile(FX_LPCBYTE pData, FX_DWORD dwSize, int nComponents);
467 FX_BOOL» » » » » m_bsRGB; 512 ~CPDF_IccProfile();
468 FX_LPVOID» » » » m_pTransform; 513 FX_BOOL m_bsRGB;
469 }; 514 FX_LPVOID m_pTransform;
470 class CPDF_DeviceCS : public CPDF_ColorSpace 515 };
471 { 516 class CPDF_DeviceCS : public CPDF_ColorSpace {
472 public: 517 public:
473 CPDF_DeviceCS(int family); 518 CPDF_DeviceCS(int family);
474 virtual FX_BOOL» GetRGB(FX_FLOAT* pBuf, FX_FLOAT& R, FX_FLOAT& G, FX_FLOA T& B) const; 519 virtual FX_BOOL GetRGB(FX_FLOAT* pBuf,
475 FX_BOOL» SetRGB(FX_FLOAT* pBuf, FX_FLOAT R, FX_FLOAT G, FX_FLOAT B) const ; 520 FX_FLOAT& R,
476 FX_BOOL» v_GetCMYK(FX_FLOAT* pBuf, FX_FLOAT& c, FX_FLOAT& m, FX_FLOAT& y, FX_FLOAT& k) const; 521 FX_FLOAT& G,
477 FX_BOOL» v_SetCMYK(FX_FLOAT* pBuf, FX_FLOAT c, FX_FLOAT m, FX_FLOAT y, FX _FLOAT k) const; 522 FX_FLOAT& B) const;
478 virtual void» TranslateImageLine(FX_LPBYTE pDestBuf, FX_LPCBYTE pSrcBu f, int pixels, int image_width, int image_height, FX_BOOL bTransMask = FALSE) co nst; 523 FX_BOOL SetRGB(FX_FLOAT* pBuf, FX_FLOAT R, FX_FLOAT G, FX_FLOAT B) const;
479 }; 524 FX_BOOL v_GetCMYK(FX_FLOAT* pBuf,
480 class CPDF_PatternCS : public CPDF_ColorSpace 525 FX_FLOAT& c,
481 { 526 FX_FLOAT& m,
482 public: 527 FX_FLOAT& y,
483 CPDF_PatternCS(); 528 FX_FLOAT& k) const;
484 ~CPDF_PatternCS(); 529 FX_BOOL v_SetCMYK(FX_FLOAT* pBuf,
485 virtual FX_BOOL» » v_Load(CPDF_Document* pDoc, CPDF_Array* pArray); 530 FX_FLOAT c,
486 virtual FX_BOOL» » GetRGB(FX_FLOAT* pBuf, FX_FLOAT& R, FX_FLOAT& G, FX_FLOAT& B) const; 531 FX_FLOAT m,
487 virtual CPDF_ColorSpace*» GetBaseCS() const 532 FX_FLOAT y,
488 { 533 FX_FLOAT k) const;
489 return m_pBaseCS; 534 virtual void TranslateImageLine(FX_LPBYTE pDestBuf,
490 } 535 FX_LPCBYTE pSrcBuf,
491 CPDF_ColorSpace*» m_pBaseCS; 536 int pixels,
492 }; 537 int image_width,
493 #define»MAX_PAGE_OBJECTS_UNIFY_NAMING» » » » 4096 538 int image_height,
494 class CPDF_ResourceNaming : public CFX_Object 539 FX_BOOL bTransMask = FALSE) const;
495 { 540 };
496 public: 541 class CPDF_PatternCS : public CPDF_ColorSpace {
497 struct _NamingState : public CFX_Object { 542 public:
498 CFX_ByteString» m_Prefix; 543 CPDF_PatternCS();
499 int» » » » m_nIndex; 544 ~CPDF_PatternCS();
500 }; 545 virtual FX_BOOL v_Load(CPDF_Document* pDoc, CPDF_Array* pArray);
501 ~CPDF_ResourceNaming(); 546 virtual FX_BOOL GetRGB(FX_FLOAT* pBuf,
502 CFX_ByteString» » GetName(const CPDF_Dictionary* pResList, FX_LPCS TR szType); 547 FX_FLOAT& R,
503 protected: 548 FX_FLOAT& G,
504 CFX_MapByteStringToPtr» m_NamingCache; 549 FX_FLOAT& B) const;
505 }; 550 virtual CPDF_ColorSpace* GetBaseCS() const { return m_pBaseCS; }
551 CPDF_ColorSpace* m_pBaseCS;
552 };
553 #define MAX_PAGE_OBJECTS_UNIFY_NAMING 4096
554 class CPDF_ResourceNaming : public CFX_Object {
555 public:
556 struct _NamingState : public CFX_Object {
557 CFX_ByteString m_Prefix;
558 int m_nIndex;
559 };
560 ~CPDF_ResourceNaming();
561 CFX_ByteString GetName(const CPDF_Dictionary* pResList, FX_LPCSTR szType);
562
563 protected:
564 CFX_MapByteStringToPtr m_NamingCache;
565 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698