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 "public/fpdf_ext.h" | 7 #include "public/fpdf_ext.h" |
8 | 8 |
9 #include "core/fpdfapi/fpdf_parser/include/cpdf_array.h" | 9 #include "core/fpdfapi/fpdf_parser/include/cpdf_array.h" |
10 #include "core/fpdfapi/fpdf_parser/include/cpdf_document.h" | 10 #include "core/fpdfapi/fpdf_parser/include/cpdf_document.h" |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
97 | 97 |
98 FX_BOOL CheckSharedForm(const CXML_Element* pElement, CFX_ByteString cbName) { | 98 FX_BOOL CheckSharedForm(const CXML_Element* pElement, CFX_ByteString cbName) { |
99 int count = pElement->CountAttrs(); | 99 int count = pElement->CountAttrs(); |
100 int i = 0; | 100 int i = 0; |
101 for (i = 0; i < count; i++) { | 101 for (i = 0; i < count; i++) { |
102 CFX_ByteString space, name; | 102 CFX_ByteString space, name; |
103 CFX_WideString value; | 103 CFX_WideString value; |
104 pElement->GetAttrByIndex(i, space, name, value); | 104 pElement->GetAttrByIndex(i, space, name, value); |
105 if (space == "xmlns" && name == "adhocwf" && | 105 if (space == "xmlns" && name == "adhocwf" && |
106 value == L"http://ns.adobe.com/AcrobatAdhocWorkflow/1.0/") { | 106 value == L"http://ns.adobe.com/AcrobatAdhocWorkflow/1.0/") { |
107 CXML_Element* pVersion = pElement->GetElement("adhocwf", cbName); | 107 CXML_Element* pVersion = pElement->GetObjectBy("adhocwf", cbName); |
108 if (!pVersion) | 108 if (!pVersion) |
109 continue; | 109 continue; |
110 CFX_WideString wsContent = pVersion->GetContent(0); // == 1.1 | 110 CFX_WideString wsContent = pVersion->GetContent(0); // == 1.1 |
111 int nType = wsContent.GetInteger(); | 111 int nType = wsContent.GetInteger(); |
112 switch (nType) { | 112 switch (nType) { |
113 case 1: | 113 case 1: |
114 FPDF_UnSupportError(FPDF_UNSP_DOC_SHAREDFORM_ACROBAT); | 114 FPDF_UnSupportError(FPDF_UNSP_DOC_SHAREDFORM_ACROBAT); |
115 break; | 115 break; |
116 case 2: | 116 case 2: |
117 FPDF_UnSupportError(FPDF_UNSP_DOC_SHAREDFORM_FILESYSTEM); | 117 FPDF_UnSupportError(FPDF_UNSP_DOC_SHAREDFORM_FILESYSTEM); |
118 break; | 118 break; |
119 case 0: | 119 case 0: |
120 FPDF_UnSupportError(FPDF_UNSP_DOC_SHAREDFORM_EMAIL); | 120 FPDF_UnSupportError(FPDF_UNSP_DOC_SHAREDFORM_EMAIL); |
121 break; | 121 break; |
122 } | 122 } |
123 } | 123 } |
124 } | 124 } |
125 | 125 |
126 uint32_t nCount = pElement->CountChildren(); | 126 uint32_t nCount = pElement->CountChildren(); |
127 for (i = 0; i < (int)nCount; i++) { | 127 for (i = 0; i < (int)nCount; i++) { |
128 CXML_Element::ChildType childType = pElement->GetChildType(i); | 128 CXML_Element::ChildType childType = pElement->GetChildType(i); |
129 if (childType == CXML_Element::Element) { | 129 if (childType == CXML_Element::Element) { |
130 CXML_Element* pChild = pElement->GetElement(i); | 130 CXML_Element* pChild = pElement->GetObjectBy(i); |
131 if (CheckSharedForm(pChild, cbName)) | 131 if (CheckSharedForm(pChild, cbName)) |
132 return TRUE; | 132 return TRUE; |
133 } | 133 } |
134 } | 134 } |
135 return FALSE; | 135 return FALSE; |
136 } | 136 } |
137 | 137 |
138 void CheckUnSupportError(CPDF_Document* pDoc, uint32_t err_code) { | 138 void CheckUnSupportError(CPDF_Document* pDoc, uint32_t err_code) { |
139 // Security | 139 // Security |
140 if (err_code == FPDF_ERR_SECURITY) { | 140 if (err_code == FPDF_ERR_SECURITY) { |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
193 | 193 |
194 DLLEXPORT int FPDFDoc_GetPageMode(FPDF_DOCUMENT document) { | 194 DLLEXPORT int FPDFDoc_GetPageMode(FPDF_DOCUMENT document) { |
195 CPDF_Document* pDoc = CPDFDocumentFromFPDFDocument(document); | 195 CPDF_Document* pDoc = CPDFDocumentFromFPDFDocument(document); |
196 if (!pDoc) | 196 if (!pDoc) |
197 return PAGEMODE_UNKNOWN; | 197 return PAGEMODE_UNKNOWN; |
198 | 198 |
199 CPDF_Dictionary* pRoot = pDoc->GetRoot(); | 199 CPDF_Dictionary* pRoot = pDoc->GetRoot(); |
200 if (!pRoot) | 200 if (!pRoot) |
201 return PAGEMODE_UNKNOWN; | 201 return PAGEMODE_UNKNOWN; |
202 | 202 |
203 CPDF_Object* pName = pRoot->GetElement("PageMode"); | 203 CPDF_Object* pName = pRoot->GetObjectBy("PageMode"); |
204 if (!pName) | 204 if (!pName) |
205 return PAGEMODE_USENONE; | 205 return PAGEMODE_USENONE; |
206 | 206 |
207 CFX_ByteString strPageMode = pName->GetString(); | 207 CFX_ByteString strPageMode = pName->GetString(); |
208 if (strPageMode.IsEmpty() || strPageMode.EqualNoCase("UseNone")) | 208 if (strPageMode.IsEmpty() || strPageMode.EqualNoCase("UseNone")) |
209 return PAGEMODE_USENONE; | 209 return PAGEMODE_USENONE; |
210 if (strPageMode.EqualNoCase("UseOutlines")) | 210 if (strPageMode.EqualNoCase("UseOutlines")) |
211 return PAGEMODE_USEOUTLINES; | 211 return PAGEMODE_USEOUTLINES; |
212 if (strPageMode.EqualNoCase("UseThumbs")) | 212 if (strPageMode.EqualNoCase("UseThumbs")) |
213 return PAGEMODE_USETHUMBS; | 213 return PAGEMODE_USETHUMBS; |
214 if (strPageMode.EqualNoCase("FullScreen")) | 214 if (strPageMode.EqualNoCase("FullScreen")) |
215 return PAGEMODE_FULLSCREEN; | 215 return PAGEMODE_FULLSCREEN; |
216 if (strPageMode.EqualNoCase("UseOC")) | 216 if (strPageMode.EqualNoCase("UseOC")) |
217 return PAGEMODE_USEOC; | 217 return PAGEMODE_USEOC; |
218 if (strPageMode.EqualNoCase("UseAttachments")) | 218 if (strPageMode.EqualNoCase("UseAttachments")) |
219 return PAGEMODE_USEATTACHMENTS; | 219 return PAGEMODE_USEATTACHMENTS; |
220 | 220 |
221 return PAGEMODE_UNKNOWN; | 221 return PAGEMODE_UNKNOWN; |
222 } | 222 } |
OLD | NEW |