OLD | NEW |
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/fsdk_define.h" | 7 #include "../include/fsdk_define.h" |
8 #include "../include/fpdf_transformpage.h" | 8 #include "../include/fpdf_transformpage.h" |
9 | 9 |
10 DLLEXPORT void STDCALL FPDFPage_SetMediaBox(FPDF_PAGE page, float left, float bo
ttom, float right, float top) | 10 DLLEXPORT void STDCALL FPDFPage_SetMediaBox(FPDF_PAGE page, float left, float bo
ttom, float right, float top) |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
89 bsClipping.Format("%f %f %f %f re W* n ", rect.left, rect.bottom, rect.W
idth(), rect.Height()); | 89 bsClipping.Format("%f %f %f %f re W* n ", rect.left, rect.bottom, rect.W
idth(), rect.Height()); |
90 textBuf<<bsClipping; | 90 textBuf<<bsClipping; |
91 | 91 |
92 CFX_ByteString bsMatix; | 92 CFX_ByteString bsMatix; |
93 bsMatix.Format("%f %f %f %f %f %f cm ", matrix->a, matrix->b,matrix->c,m
atrix->d,matrix->e,matrix->f); | 93 bsMatix.Format("%f %f %f %f %f %f cm ", matrix->a, matrix->b,matrix->c,m
atrix->d,matrix->e,matrix->f); |
94 textBuf<<bsMatix; | 94 textBuf<<bsMatix; |
95 | 95 |
96 | 96 |
97 CPDF_Page* pPage = (CPDF_Page*)page; | 97 CPDF_Page* pPage = (CPDF_Page*)page; |
98 CPDF_Dictionary* pPageDic = pPage->m_pFormDict; | 98 CPDF_Dictionary* pPageDic = pPage->m_pFormDict; |
99 » CPDF_Object* pContentObj = pPageDic->GetElement("Contents"); | 99 » CPDF_Object* pContentObj = pPageDic ? pPageDic->GetElement("Contents") :
NULL; |
100 if(!pContentObj) | 100 if(!pContentObj) |
101 » » pContentObj = pPageDic->GetArray("Contents"); | 101 » » pContentObj = pPageDic ? pPageDic->GetArray("Contents") : NULL; |
102 if(!pContentObj) | 102 if(!pContentObj) |
103 return FALSE; | 103 return FALSE; |
104 | 104 |
105 CPDF_Dictionary* pDic = FX_NEW CPDF_Dictionary; | 105 CPDF_Dictionary* pDic = FX_NEW CPDF_Dictionary; |
106 CPDF_Stream* pStream = FX_NEW CPDF_Stream(NULL,0, pDic); | 106 CPDF_Stream* pStream = FX_NEW CPDF_Stream(NULL,0, pDic); |
107 pStream->SetData(textBuf.GetBuffer(), textBuf.GetSize(), FALSE, FALSE); | 107 pStream->SetData(textBuf.GetBuffer(), textBuf.GetSize(), FALSE, FALSE); |
108 CPDF_Document* pDoc = pPage->m_pDocument; | 108 CPDF_Document* pDoc = pPage->m_pDocument; |
109 if(!pDoc) | 109 if(!pDoc) |
110 return FALSE; | 110 return FALSE; |
111 pDoc->AddIndirectObject(pStream); | 111 pDoc->AddIndirectObject(pStream); |
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
253 } | 253 } |
254 } | 254 } |
255 } | 255 } |
256 | 256 |
257 DLLEXPORT void STDCALL FPDFPage_InsertClipPath(FPDF_PAGE page,FPDF_CLIPPATH clip
Path) | 257 DLLEXPORT void STDCALL FPDFPage_InsertClipPath(FPDF_PAGE page,FPDF_CLIPPATH clip
Path) |
258 { | 258 { |
259 if(!page) | 259 if(!page) |
260 return; | 260 return; |
261 CPDF_Page* pPage = (CPDF_Page*)page; | 261 CPDF_Page* pPage = (CPDF_Page*)page; |
262 CPDF_Dictionary* pPageDic = pPage->m_pFormDict; | 262 CPDF_Dictionary* pPageDic = pPage->m_pFormDict; |
263 » CPDF_Object* pContentObj = pPageDic->GetElement("Contents"); | 263 » CPDF_Object* pContentObj = pPageDic ? pPageDic->GetElement("Contents") :
NULL; |
264 if(!pContentObj) | 264 if(!pContentObj) |
265 » » pContentObj = pPageDic->GetArray("Contents"); | 265 » » pContentObj = pPageDic ? pPageDic->GetArray("Contents") : NULL; |
266 if(!pContentObj) | 266 if(!pContentObj) |
267 return; | 267 return; |
268 | 268 |
269 CFX_ByteTextBuf strClip; | 269 CFX_ByteTextBuf strClip; |
270 CPDF_ClipPath* pClipPath = (CPDF_ClipPath*)clipPath; | 270 CPDF_ClipPath* pClipPath = (CPDF_ClipPath*)clipPath; |
271 FX_DWORD i; | 271 FX_DWORD i; |
272 for (i = 0; i < pClipPath->GetPathCount(); i ++) { | 272 for (i = 0; i < pClipPath->GetPathCount(); i ++) { |
273 CPDF_Path path = pClipPath->GetPath(i); | 273 CPDF_Path path = pClipPath->GetPath(i); |
274 int iClipType = pClipPath->GetClipType(i); | 274 int iClipType = pClipPath->GetClipType(i); |
275 if (path.GetPointCount() == 0) { | 275 if (path.GetPointCount() == 0) { |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
316 { | 316 { |
317 pContentArray = FX_NEW CPDF_Array(); | 317 pContentArray = FX_NEW CPDF_Array(); |
318 pContentArray->AddReference(pDoc,pStream->GetObj
Num()); | 318 pContentArray->AddReference(pDoc,pStream->GetObj
Num()); |
319 pContentArray->AddReference(pDoc,pDirectObj->Get
ObjNum()); | 319 pContentArray->AddReference(pDoc,pDirectObj->Get
ObjNum()); |
320 pPageDic->SetAtReference("Contents", pDoc, pDoc-
>AddIndirectObject(pContentArray)); | 320 pPageDic->SetAtReference("Contents", pDoc, pDoc-
>AddIndirectObject(pContentArray)); |
321 } | 321 } |
322 } | 322 } |
323 } | 323 } |
324 } | 324 } |
325 | 325 |
OLD | NEW |