| 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 "fpdfsdk/include/fsdk_baseform.h" | 7 #include "fpdfsdk/include/fsdk_baseform.h" |
| 8 | 8 |
| 9 #include <memory> | 9 #include <memory> |
| 10 | 10 |
| (...skipping 2171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2182 } | 2182 } |
| 2183 | 2183 |
| 2184 FX_BOOL CPDFSDK_InterForm::IsXfaValidationsEnabled() { | 2184 FX_BOOL CPDFSDK_InterForm::IsXfaValidationsEnabled() { |
| 2185 return m_bXfaValidationsEnabled; | 2185 return m_bXfaValidationsEnabled; |
| 2186 } | 2186 } |
| 2187 void CPDFSDK_InterForm::XfaSetValidationsEnabled(FX_BOOL bEnabled) { | 2187 void CPDFSDK_InterForm::XfaSetValidationsEnabled(FX_BOOL bEnabled) { |
| 2188 m_bXfaValidationsEnabled = bEnabled; | 2188 m_bXfaValidationsEnabled = bEnabled; |
| 2189 } | 2189 } |
| 2190 #endif // PDF_ENABLE_XFA | 2190 #endif // PDF_ENABLE_XFA |
| 2191 | 2191 |
| 2192 #ifdef _WIN32 | |
| 2193 CPDF_Stream* CPDFSDK_InterForm::LoadImageFromFile(const CFX_WideString& sFile) { | |
| 2194 CPDF_Document* pDocument = m_pDocument->GetPDFDocument(); | |
| 2195 CPDF_Stream* pRetStream = NULL; | |
| 2196 | |
| 2197 if (CFX_DIBitmap* pBmp = CFX_WindowsDIB::LoadFromFile(sFile.c_str())) { | |
| 2198 int nWidth = pBmp->GetWidth(); | |
| 2199 int nHeight = pBmp->GetHeight(); | |
| 2200 | |
| 2201 CPDF_Image Image(pDocument); | |
| 2202 Image.SetImage(pBmp, FALSE); | |
| 2203 CPDF_Stream* pImageStream = Image.GetStream(); | |
| 2204 if (pImageStream) { | |
| 2205 if (pImageStream->GetObjNum() == 0) | |
| 2206 pDocument->AddIndirectObject(pImageStream); | |
| 2207 | |
| 2208 CPDF_Dictionary* pStreamDict = new CPDF_Dictionary(); | |
| 2209 pStreamDict->SetAtName("Subtype", "Form"); | |
| 2210 pStreamDict->SetAtName("Name", "IMG"); | |
| 2211 CPDF_Array* pMatrix = new CPDF_Array(); | |
| 2212 pStreamDict->SetAt("Matrix", pMatrix); | |
| 2213 pMatrix->AddInteger(1); | |
| 2214 pMatrix->AddInteger(0); | |
| 2215 pMatrix->AddInteger(0); | |
| 2216 pMatrix->AddInteger(1); | |
| 2217 pMatrix->AddInteger(-nWidth / 2); | |
| 2218 pMatrix->AddInteger(-nHeight / 2); | |
| 2219 CPDF_Dictionary* pResource = new CPDF_Dictionary(); | |
| 2220 pStreamDict->SetAt("Resources", pResource); | |
| 2221 CPDF_Dictionary* pXObject = new CPDF_Dictionary(); | |
| 2222 pResource->SetAt("XObject", pXObject); | |
| 2223 pXObject->SetAtReference("Img", pDocument, pImageStream); | |
| 2224 CPDF_Array* pProcSet = new CPDF_Array(); | |
| 2225 pResource->SetAt("ProcSet", pProcSet); | |
| 2226 pProcSet->AddName("PDF"); | |
| 2227 pProcSet->AddName("ImageC"); | |
| 2228 pStreamDict->SetAtName("Type", "XObject"); | |
| 2229 CPDF_Array* pBBox = new CPDF_Array(); | |
| 2230 pStreamDict->SetAt("BBox", pBBox); | |
| 2231 pBBox->AddInteger(0); | |
| 2232 pBBox->AddInteger(0); | |
| 2233 pBBox->AddInteger(nWidth); | |
| 2234 pBBox->AddInteger(nHeight); | |
| 2235 pStreamDict->SetAtInteger("FormType", 1); | |
| 2236 | |
| 2237 pRetStream = new CPDF_Stream(NULL, 0, NULL); | |
| 2238 CFX_ByteString csStream; | |
| 2239 csStream.Format("q\n%d 0 0 %d 0 0 cm\n/Img Do\nQ", nWidth, nHeight); | |
| 2240 pRetStream->InitStream((uint8_t*)csStream.c_str(), csStream.GetLength(), | |
| 2241 pStreamDict); | |
| 2242 pDocument->AddIndirectObject(pRetStream); | |
| 2243 } | |
| 2244 | |
| 2245 delete pBmp; | |
| 2246 } | |
| 2247 | |
| 2248 return pRetStream; | |
| 2249 } | |
| 2250 #endif // _WIN32 | |
| 2251 | |
| 2252 void CPDFSDK_InterForm::OnCalculate(CPDF_FormField* pFormField) { | 2192 void CPDFSDK_InterForm::OnCalculate(CPDF_FormField* pFormField) { |
| 2253 CPDFDoc_Environment* pEnv = m_pDocument->GetEnv(); | 2193 CPDFDoc_Environment* pEnv = m_pDocument->GetEnv(); |
| 2254 ASSERT(pEnv); | 2194 ASSERT(pEnv); |
| 2255 if (!pEnv->IsJSInitiated()) | 2195 if (!pEnv->IsJSInitiated()) |
| 2256 return; | 2196 return; |
| 2257 | 2197 |
| 2258 if (m_bBusy) | 2198 if (m_bBusy) |
| 2259 return; | 2199 return; |
| 2260 | 2200 |
| 2261 m_bBusy = TRUE; | 2201 m_bBusy = TRUE; |
| (...skipping 752 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3014 break; | 2954 break; |
| 3015 } | 2955 } |
| 3016 } | 2956 } |
| 3017 } | 2957 } |
| 3018 | 2958 |
| 3019 CPDF_Rect CBA_AnnotIterator::GetAnnotRect(CPDFSDK_Annot* pAnnot) { | 2959 CPDF_Rect CBA_AnnotIterator::GetAnnotRect(CPDFSDK_Annot* pAnnot) { |
| 3020 CPDF_Rect rcAnnot; | 2960 CPDF_Rect rcAnnot; |
| 3021 pAnnot->GetPDFAnnot()->GetRect(rcAnnot); | 2961 pAnnot->GetPDFAnnot()->GetRect(rcAnnot); |
| 3022 return rcAnnot; | 2962 return rcAnnot; |
| 3023 } | 2963 } |
| OLD | NEW |