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

Side by Side Diff: fpdfsdk/src/javascript/Document.cpp

Issue 1601093009: Redo CPDF_PageObjects - part 1 (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Rebase Created 4 years, 11 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
« no previous file with comments | « fpdfsdk/src/fpdfview.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "Document.h" 7 #include "Document.h"
8 8
9 #include "Field.h" 9 #include "Field.h"
10 #include "Icon.h" 10 #include "Icon.h"
(...skipping 1360 matching lines...) Expand 10 before | Expand all | Expand 10 after
1371 sError = JSGetStringFromID(pContext, IDS_STRING_JSVALUEERROR); 1371 sError = JSGetStringFromID(pContext, IDS_STRING_JSVALUEERROR);
1372 return FALSE; 1372 return FALSE;
1373 } 1373 }
1374 1374
1375 CPDF_Dictionary* pPageDict = pDocument->GetPage(nPageNo); 1375 CPDF_Dictionary* pPageDict = pDocument->GetPage(nPageNo);
1376 if (!pPageDict) 1376 if (!pPageDict)
1377 return FALSE; 1377 return FALSE;
1378 1378
1379 CPDF_Page page; 1379 CPDF_Page page;
1380 page.Load(pDocument, pPageDict); 1380 page.Load(pDocument, pPageDict);
1381 page.StartParse(); 1381 page.ParseContent(nullptr);
1382 page.ParseContent();
1383 1382
1384 FX_POSITION pos = page.GetFirstObjectPosition(); 1383 FX_POSITION pos = page.GetFirstObjectPosition();
1385 1384
1386 int nWords = 0; 1385 int nWords = 0;
1387 1386
1388 CFX_WideString swRet; 1387 CFX_WideString swRet;
1389 1388
1390 while (pos) { 1389 while (pos) {
1391 if (CPDF_PageObject* pPageObj = page.GetNextObject(pos)) { 1390 if (CPDF_PageObject* pPageObj = page.GetNextObject(pos)) {
1392 if (pPageObj->m_Type == PDFPAGE_TEXT) { 1391 if (pPageObj->m_Type == PDFPAGE_TEXT) {
(...skipping 29 matching lines...) Expand all
1422 } 1421 }
1423 1422
1424 FX_BOOL Document::getPageNumWords(IJS_Context* cc, 1423 FX_BOOL Document::getPageNumWords(IJS_Context* cc,
1425 const std::vector<CJS_Value>& params, 1424 const std::vector<CJS_Value>& params,
1426 CJS_Value& vRet, 1425 CJS_Value& vRet,
1427 CFX_WideString& sError) { 1426 CFX_WideString& sError) {
1428 if (!m_pDocument->GetPermissions(FPDFPERM_EXTRACT_ACCESS)) 1427 if (!m_pDocument->GetPermissions(FPDFPERM_EXTRACT_ACCESS))
1429 return FALSE; 1428 return FALSE;
1430 1429
1431 int nPageNo = params.size() > 0 ? params[0].ToInt() : 0; 1430 int nPageNo = params.size() > 0 ? params[0].ToInt() : 0;
1432
1433 CPDF_Document* pDocument = m_pDocument->GetPDFDocument(); 1431 CPDF_Document* pDocument = m_pDocument->GetPDFDocument();
1434 CJS_Context* pContext = static_cast<CJS_Context*>(cc); 1432 CJS_Context* pContext = static_cast<CJS_Context*>(cc);
1435 if (nPageNo < 0 || nPageNo >= pDocument->GetPageCount()) { 1433 if (nPageNo < 0 || nPageNo >= pDocument->GetPageCount()) {
1436 sError = JSGetStringFromID(pContext, IDS_STRING_JSVALUEERROR); 1434 sError = JSGetStringFromID(pContext, IDS_STRING_JSVALUEERROR);
1437 return FALSE; 1435 return FALSE;
1438 } 1436 }
1439 1437
1440 CPDF_Dictionary* pPageDict = pDocument->GetPage(nPageNo); 1438 CPDF_Dictionary* pPageDict = pDocument->GetPage(nPageNo);
1441 if (!pPageDict) 1439 if (!pPageDict)
1442 return FALSE; 1440 return FALSE;
1443 1441
1444 CPDF_Page page; 1442 CPDF_Page page;
1445 page.Load(pDocument, pPageDict); 1443 page.Load(pDocument, pPageDict);
1446 page.StartParse(); 1444 page.ParseContent(nullptr);
1447 page.ParseContent();
1448
1449 FX_POSITION pos = page.GetFirstObjectPosition();
1450 1445
1451 int nWords = 0; 1446 int nWords = 0;
1452 1447 FX_POSITION pos = page.GetFirstObjectPosition();
1453 while (pos) { 1448 while (pos) {
1454 if (CPDF_PageObject* pPageObj = page.GetNextObject(pos)) { 1449 if (CPDF_PageObject* pPageObj = page.GetNextObject(pos)) {
1455 if (pPageObj->m_Type == PDFPAGE_TEXT) { 1450 if (pPageObj->m_Type == PDFPAGE_TEXT) {
1456 CPDF_TextObject* pTextObj = (CPDF_TextObject*)pPageObj; 1451 CPDF_TextObject* pTextObj = (CPDF_TextObject*)pPageObj;
1457 nWords += CountWords(pTextObj); 1452 nWords += CountWords(pTextObj);
1458 } 1453 }
1459 } 1454 }
1460 } 1455 }
1461 1456
1462 vRet = nWords; 1457 vRet = nWords;
1463
1464 return TRUE; 1458 return TRUE;
1465 } 1459 }
1466 1460
1467 FX_BOOL Document::getPrintParams(IJS_Context* cc, 1461 FX_BOOL Document::getPrintParams(IJS_Context* cc,
1468 const std::vector<CJS_Value>& params, 1462 const std::vector<CJS_Value>& params,
1469 CJS_Value& vRet, 1463 CJS_Value& vRet,
1470 CFX_WideString& sError) { 1464 CFX_WideString& sError) {
1471 CJS_Context* pContext = (CJS_Context*)cc; 1465 CJS_Context* pContext = (CJS_Context*)cc;
1472 CJS_Runtime* pRuntime = pContext->GetJSRuntime(); 1466 CJS_Runtime* pRuntime = pContext->GetJSRuntime();
1473 v8::Local<v8::Object> pRetObj = FXJS_NewFxDynamicObj( 1467 v8::Local<v8::Object> pRetObj = FXJS_NewFxDynamicObj(
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
1642 CJS_DelayData* pData = DelayDataForFieldAndControlIndex.GetAt(i); 1636 CJS_DelayData* pData = DelayDataForFieldAndControlIndex.GetAt(i);
1643 Field::DoDelay(m_pDocument, pData); 1637 Field::DoDelay(m_pDocument, pData);
1644 DelayDataForFieldAndControlIndex.SetAt(i, NULL); 1638 DelayDataForFieldAndControlIndex.SetAt(i, NULL);
1645 delete pData; 1639 delete pData;
1646 } 1640 }
1647 } 1641 }
1648 1642
1649 CJS_Document* Document::GetCJSDoc() const { 1643 CJS_Document* Document::GetCJSDoc() const {
1650 return static_cast<CJS_Document*>(m_pJSObject); 1644 return static_cast<CJS_Document*>(m_pJSObject);
1651 } 1645 }
OLDNEW
« no previous file with comments | « fpdfsdk/src/fpdfview.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698