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

Side by Side Diff: core/src/fpdfdoc/doc_utils.cpp

Issue 1648233002: Merge to XFA: Member function name refactoring (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@xfa
Patch Set: more xfa changes Created 4 years, 10 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 | « core/src/fpdfdoc/doc_tagged.cpp ('k') | core/src/fpdfdoc/doc_viewerPreferences.cpp » ('j') | 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 <algorithm> 7 #include <algorithm>
8 8
9 #include "core/include/fpdfdoc/fpdf_doc.h" 9 #include "core/include/fpdfdoc/fpdf_doc.h"
10 #include "doc_utils.h" 10 #include "doc_utils.h"
11 11
12 static const int FPDFDOC_UTILS_MAXRECURSION = 32; 12 static const int FPDFDOC_UTILS_MAXRECURSION = 32;
13 13
14 CFX_WideString GetFullName(CPDF_Dictionary* pFieldDict) { 14 CFX_WideString GetFullName(CPDF_Dictionary* pFieldDict) {
15 CFX_WideString full_name; 15 CFX_WideString full_name;
16 CPDF_Dictionary* pLevel = pFieldDict; 16 CPDF_Dictionary* pLevel = pFieldDict;
17 while (pLevel) { 17 while (pLevel) {
18 CFX_WideString short_name = pLevel->GetUnicodeText("T"); 18 CFX_WideString short_name = pLevel->GetUnicodeTextBy("T");
19 if (short_name != L"") { 19 if (short_name != L"") {
20 if (full_name == L"") { 20 if (full_name == L"") {
21 full_name = short_name; 21 full_name = short_name;
22 } else { 22 } else {
23 full_name = short_name + L"." + full_name; 23 full_name = short_name + L"." + full_name;
24 } 24 }
25 } 25 }
26 pLevel = pLevel->GetDict("Parent"); 26 pLevel = pLevel->GetDictBy("Parent");
27 } 27 }
28 return full_name; 28 return full_name;
29 } 29 }
30 FX_BOOL CPDF_DefaultAppearance::HasFont() { 30 FX_BOOL CPDF_DefaultAppearance::HasFont() {
31 if (m_csDA.IsEmpty()) { 31 if (m_csDA.IsEmpty()) {
32 return FALSE; 32 return FALSE;
33 } 33 }
34 CPDF_SimpleParser syntax(m_csDA); 34 CPDF_SimpleParser syntax(m_csDA);
35 return syntax.FindTagParam("Tf", 2); 35 return syntax.FindTagParam("Tf", 2);
36 } 36 }
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after
265 } 265 }
266 csDA += "0 g"; 266 csDA += "0 g";
267 if (!pFormDict->KeyExist("DA")) { 267 if (!pFormDict->KeyExist("DA")) {
268 pFormDict->SetAtString("DA", csDA); 268 pFormDict->SetAtString("DA", csDA);
269 } 269 }
270 } 270 }
271 FX_DWORD CountInterFormFonts(CPDF_Dictionary* pFormDict) { 271 FX_DWORD CountInterFormFonts(CPDF_Dictionary* pFormDict) {
272 if (!pFormDict) { 272 if (!pFormDict) {
273 return 0; 273 return 0;
274 } 274 }
275 CPDF_Dictionary* pDR = pFormDict->GetDict("DR"); 275 CPDF_Dictionary* pDR = pFormDict->GetDictBy("DR");
276 if (!pDR) { 276 if (!pDR) {
277 return 0; 277 return 0;
278 } 278 }
279 CPDF_Dictionary* pFonts = pDR->GetDict("Font"); 279 CPDF_Dictionary* pFonts = pDR->GetDictBy("Font");
280 if (!pFonts) { 280 if (!pFonts) {
281 return 0; 281 return 0;
282 } 282 }
283 FX_DWORD dwCount = 0; 283 FX_DWORD dwCount = 0;
284 for (const auto& it : *pFonts) { 284 for (const auto& it : *pFonts) {
285 CPDF_Object* pObj = it.second; 285 CPDF_Object* pObj = it.second;
286 if (!pObj) { 286 if (!pObj) {
287 continue; 287 continue;
288 } 288 }
289 if (CPDF_Dictionary* pDirect = ToDictionary(pObj->GetDirect())) { 289 if (CPDF_Dictionary* pDirect = ToDictionary(pObj->GetDirect())) {
290 if (pDirect->GetString("Type") == "Font") { 290 if (pDirect->GetStringBy("Type") == "Font") {
291 dwCount++; 291 dwCount++;
292 } 292 }
293 } 293 }
294 } 294 }
295 return dwCount; 295 return dwCount;
296 } 296 }
297 CPDF_Font* GetInterFormFont(CPDF_Dictionary* pFormDict, 297 CPDF_Font* GetInterFormFont(CPDF_Dictionary* pFormDict,
298 CPDF_Document* pDocument, 298 CPDF_Document* pDocument,
299 FX_DWORD index, 299 FX_DWORD index,
300 CFX_ByteString& csNameTag) { 300 CFX_ByteString& csNameTag) {
301 if (!pFormDict) { 301 if (!pFormDict) {
302 return NULL; 302 return NULL;
303 } 303 }
304 CPDF_Dictionary* pDR = pFormDict->GetDict("DR"); 304 CPDF_Dictionary* pDR = pFormDict->GetDictBy("DR");
305 if (!pDR) { 305 if (!pDR) {
306 return NULL; 306 return NULL;
307 } 307 }
308 CPDF_Dictionary* pFonts = pDR->GetDict("Font"); 308 CPDF_Dictionary* pFonts = pDR->GetDictBy("Font");
309 if (!pFonts) { 309 if (!pFonts) {
310 return NULL; 310 return NULL;
311 } 311 }
312 FX_DWORD dwCount = 0; 312 FX_DWORD dwCount = 0;
313 for (const auto& it : *pFonts) { 313 for (const auto& it : *pFonts) {
314 const CFX_ByteString& csKey = it.first; 314 const CFX_ByteString& csKey = it.first;
315 CPDF_Object* pObj = it.second; 315 CPDF_Object* pObj = it.second;
316 if (!pObj) { 316 if (!pObj) {
317 continue; 317 continue;
318 } 318 }
319 CPDF_Dictionary* pElement = ToDictionary(pObj->GetDirect()); 319 CPDF_Dictionary* pElement = ToDictionary(pObj->GetDirect());
320 if (!pElement) 320 if (!pElement)
321 continue; 321 continue;
322 if (pElement->GetString("Type") != "Font") 322 if (pElement->GetStringBy("Type") != "Font")
323 continue; 323 continue;
324 if (dwCount == index) { 324 if (dwCount == index) {
325 csNameTag = csKey; 325 csNameTag = csKey;
326 return pDocument->LoadFont(pElement); 326 return pDocument->LoadFont(pElement);
327 } 327 }
328 dwCount++; 328 dwCount++;
329 } 329 }
330 return NULL; 330 return NULL;
331 } 331 }
332 CPDF_Font* GetInterFormFont(CPDF_Dictionary* pFormDict, 332 CPDF_Font* GetInterFormFont(CPDF_Dictionary* pFormDict,
333 CPDF_Document* pDocument, 333 CPDF_Document* pDocument,
334 CFX_ByteString csNameTag) { 334 CFX_ByteString csNameTag) {
335 CFX_ByteString csAlias = PDF_NameDecode(csNameTag); 335 CFX_ByteString csAlias = PDF_NameDecode(csNameTag);
336 if (!pFormDict || csAlias.IsEmpty()) { 336 if (!pFormDict || csAlias.IsEmpty()) {
337 return NULL; 337 return NULL;
338 } 338 }
339 CPDF_Dictionary* pDR = pFormDict->GetDict("DR"); 339 CPDF_Dictionary* pDR = pFormDict->GetDictBy("DR");
340 if (!pDR) { 340 if (!pDR) {
341 return NULL; 341 return NULL;
342 } 342 }
343 CPDF_Dictionary* pFonts = pDR->GetDict("Font"); 343 CPDF_Dictionary* pFonts = pDR->GetDictBy("Font");
344 if (!pFonts) { 344 if (!pFonts) {
345 return NULL; 345 return NULL;
346 } 346 }
347 CPDF_Dictionary* pElement = pFonts->GetDict(csAlias); 347 CPDF_Dictionary* pElement = pFonts->GetDictBy(csAlias);
348 if (!pElement) { 348 if (!pElement) {
349 return NULL; 349 return NULL;
350 } 350 }
351 if (pElement->GetString("Type") == "Font") { 351 if (pElement->GetStringBy("Type") == "Font") {
352 return pDocument->LoadFont(pElement); 352 return pDocument->LoadFont(pElement);
353 } 353 }
354 return NULL; 354 return NULL;
355 } 355 }
356 CPDF_Font* GetInterFormFont(CPDF_Dictionary* pFormDict, 356 CPDF_Font* GetInterFormFont(CPDF_Dictionary* pFormDict,
357 CPDF_Document* pDocument, 357 CPDF_Document* pDocument,
358 CFX_ByteString csFontName, 358 CFX_ByteString csFontName,
359 CFX_ByteString& csNameTag) { 359 CFX_ByteString& csNameTag) {
360 if (!pFormDict || csFontName.IsEmpty()) { 360 if (!pFormDict || csFontName.IsEmpty()) {
361 return NULL; 361 return NULL;
362 } 362 }
363 CPDF_Dictionary* pDR = pFormDict->GetDict("DR"); 363 CPDF_Dictionary* pDR = pFormDict->GetDictBy("DR");
364 if (!pDR) { 364 if (!pDR) {
365 return NULL; 365 return NULL;
366 } 366 }
367 CPDF_Dictionary* pFonts = pDR->GetDict("Font"); 367 CPDF_Dictionary* pFonts = pDR->GetDictBy("Font");
368 if (!pFonts) { 368 if (!pFonts) {
369 return NULL; 369 return NULL;
370 } 370 }
371 for (const auto& it : *pFonts) { 371 for (const auto& it : *pFonts) {
372 const CFX_ByteString& csKey = it.first; 372 const CFX_ByteString& csKey = it.first;
373 CPDF_Object* pObj = it.second; 373 CPDF_Object* pObj = it.second;
374 if (!pObj) { 374 if (!pObj) {
375 continue; 375 continue;
376 } 376 }
377 CPDF_Dictionary* pElement = ToDictionary(pObj->GetDirect()); 377 CPDF_Dictionary* pElement = ToDictionary(pObj->GetDirect());
378 if (!pElement) 378 if (!pElement)
379 continue; 379 continue;
380 if (pElement->GetString("Type") != "Font") 380 if (pElement->GetStringBy("Type") != "Font")
381 continue; 381 continue;
382 382
383 CPDF_Font* pFind = pDocument->LoadFont(pElement); 383 CPDF_Font* pFind = pDocument->LoadFont(pElement);
384 if (!pFind) 384 if (!pFind)
385 continue; 385 continue;
386 386
387 CFX_ByteString csBaseFont; 387 CFX_ByteString csBaseFont;
388 csBaseFont = pFind->GetBaseFont(); 388 csBaseFont = pFind->GetBaseFont();
389 csBaseFont.Remove(' '); 389 csBaseFont.Remove(' ');
390 if (csBaseFont == csFontName) { 390 if (csBaseFont == csFontName) {
391 csNameTag = csKey; 391 csNameTag = csKey;
392 return pFind; 392 return pFind;
393 } 393 }
394 } 394 }
395 return NULL; 395 return NULL;
396 } 396 }
397 CPDF_Font* GetNativeInterFormFont(CPDF_Dictionary* pFormDict, 397 CPDF_Font* GetNativeInterFormFont(CPDF_Dictionary* pFormDict,
398 CPDF_Document* pDocument, 398 CPDF_Document* pDocument,
399 uint8_t charSet, 399 uint8_t charSet,
400 CFX_ByteString& csNameTag) { 400 CFX_ByteString& csNameTag) {
401 if (!pFormDict) { 401 if (!pFormDict) {
402 return NULL; 402 return NULL;
403 } 403 }
404 CPDF_Dictionary* pDR = pFormDict->GetDict("DR"); 404 CPDF_Dictionary* pDR = pFormDict->GetDictBy("DR");
405 if (!pDR) { 405 if (!pDR) {
406 return NULL; 406 return NULL;
407 } 407 }
408 CPDF_Dictionary* pFonts = pDR->GetDict("Font"); 408 CPDF_Dictionary* pFonts = pDR->GetDictBy("Font");
409 if (!pFonts) { 409 if (!pFonts) {
410 return NULL; 410 return NULL;
411 } 411 }
412 for (const auto& it : *pFonts) { 412 for (const auto& it : *pFonts) {
413 const CFX_ByteString& csKey = it.first; 413 const CFX_ByteString& csKey = it.first;
414 CPDF_Object* pObj = it.second; 414 CPDF_Object* pObj = it.second;
415 if (!pObj) { 415 if (!pObj) {
416 continue; 416 continue;
417 } 417 }
418 CPDF_Dictionary* pElement = ToDictionary(pObj->GetDirect()); 418 CPDF_Dictionary* pElement = ToDictionary(pObj->GetDirect());
419 if (!pElement) 419 if (!pElement)
420 continue; 420 continue;
421 if (pElement->GetString("Type") != "Font") 421 if (pElement->GetStringBy("Type") != "Font")
422 continue; 422 continue;
423 CPDF_Font* pFind = pDocument->LoadFont(pElement); 423 CPDF_Font* pFind = pDocument->LoadFont(pElement);
424 if (!pFind) { 424 if (!pFind) {
425 continue; 425 continue;
426 } 426 }
427 CFX_SubstFont* pSubst = (CFX_SubstFont*)pFind->GetSubstFont(); 427 CFX_SubstFont* pSubst = (CFX_SubstFont*)pFind->GetSubstFont();
428 if (!pSubst) { 428 if (!pSubst) {
429 continue; 429 continue;
430 } 430 }
431 if (pSubst->m_Charset == (int)charSet) { 431 if (pSubst->m_Charset == (int)charSet) {
(...skipping 18 matching lines...) Expand all
450 } 450 }
451 } 451 }
452 return GetNativeInterFormFont(pFormDict, pDocument, charSet, csNameTag); 452 return GetNativeInterFormFont(pFormDict, pDocument, charSet, csNameTag);
453 } 453 }
454 FX_BOOL FindInterFormFont(CPDF_Dictionary* pFormDict, 454 FX_BOOL FindInterFormFont(CPDF_Dictionary* pFormDict,
455 const CPDF_Font* pFont, 455 const CPDF_Font* pFont,
456 CFX_ByteString& csNameTag) { 456 CFX_ByteString& csNameTag) {
457 if (!pFormDict || !pFont) { 457 if (!pFormDict || !pFont) {
458 return FALSE; 458 return FALSE;
459 } 459 }
460 CPDF_Dictionary* pDR = pFormDict->GetDict("DR"); 460 CPDF_Dictionary* pDR = pFormDict->GetDictBy("DR");
461 if (!pDR) { 461 if (!pDR) {
462 return FALSE; 462 return FALSE;
463 } 463 }
464 CPDF_Dictionary* pFonts = pDR->GetDict("Font"); 464 CPDF_Dictionary* pFonts = pDR->GetDictBy("Font");
465 if (!pFonts) { 465 if (!pFonts) {
466 return FALSE; 466 return FALSE;
467 } 467 }
468 for (const auto& it : *pFonts) { 468 for (const auto& it : *pFonts) {
469 const CFX_ByteString& csKey = it.first; 469 const CFX_ByteString& csKey = it.first;
470 CPDF_Object* pObj = it.second; 470 CPDF_Object* pObj = it.second;
471 if (!pObj) { 471 if (!pObj) {
472 continue; 472 continue;
473 } 473 }
474 CPDF_Dictionary* pElement = ToDictionary(pObj->GetDirect()); 474 CPDF_Dictionary* pElement = ToDictionary(pObj->GetDirect());
475 if (!pElement) 475 if (!pElement)
476 continue; 476 continue;
477 if (pElement->GetString("Type") != "Font") { 477 if (pElement->GetStringBy("Type") != "Font") {
478 continue; 478 continue;
479 } 479 }
480 if (pFont->GetFontDict() == pElement) { 480 if (pFont->GetFontDict() == pElement) {
481 csNameTag = csKey; 481 csNameTag = csKey;
482 return TRUE; 482 return TRUE;
483 } 483 }
484 } 484 }
485 return FALSE; 485 return FALSE;
486 } 486 }
487 FX_BOOL FindInterFormFont(CPDF_Dictionary* pFormDict, 487 FX_BOOL FindInterFormFont(CPDF_Dictionary* pFormDict,
488 CPDF_Document* pDocument, 488 CPDF_Document* pDocument,
489 CFX_ByteString csFontName, 489 CFX_ByteString csFontName,
490 CPDF_Font*& pFont, 490 CPDF_Font*& pFont,
491 CFX_ByteString& csNameTag) { 491 CFX_ByteString& csNameTag) {
492 if (!pFormDict) { 492 if (!pFormDict) {
493 return FALSE; 493 return FALSE;
494 } 494 }
495 CPDF_Dictionary* pDR = pFormDict->GetDict("DR"); 495 CPDF_Dictionary* pDR = pFormDict->GetDictBy("DR");
496 if (!pDR) { 496 if (!pDR) {
497 return FALSE; 497 return FALSE;
498 } 498 }
499 CPDF_Dictionary* pFonts = pDR->GetDict("Font"); 499 CPDF_Dictionary* pFonts = pDR->GetDictBy("Font");
500 if (!pFonts) { 500 if (!pFonts) {
501 return FALSE; 501 return FALSE;
502 } 502 }
503 if (csFontName.GetLength() > 0) { 503 if (csFontName.GetLength() > 0) {
504 csFontName.Remove(' '); 504 csFontName.Remove(' ');
505 } 505 }
506 for (const auto& it : *pFonts) { 506 for (const auto& it : *pFonts) {
507 const CFX_ByteString& csKey = it.first; 507 const CFX_ByteString& csKey = it.first;
508 CPDF_Object* pObj = it.second; 508 CPDF_Object* pObj = it.second;
509 if (!pObj) { 509 if (!pObj) {
510 continue; 510 continue;
511 } 511 }
512 CPDF_Dictionary* pElement = ToDictionary(pObj->GetDirect()); 512 CPDF_Dictionary* pElement = ToDictionary(pObj->GetDirect());
513 if (!pElement) 513 if (!pElement)
514 continue; 514 continue;
515 if (pElement->GetString("Type") != "Font") { 515 if (pElement->GetStringBy("Type") != "Font") {
516 continue; 516 continue;
517 } 517 }
518 pFont = pDocument->LoadFont(pElement); 518 pFont = pDocument->LoadFont(pElement);
519 if (!pFont) { 519 if (!pFont) {
520 continue; 520 continue;
521 } 521 }
522 CFX_ByteString csBaseFont; 522 CFX_ByteString csBaseFont;
523 csBaseFont = pFont->GetBaseFont(); 523 csBaseFont = pFont->GetBaseFont();
524 csBaseFont.Remove(' '); 524 csBaseFont.Remove(' ');
525 if (csBaseFont == csFontName) { 525 if (csBaseFont == csFontName) {
(...skipping 14 matching lines...) Expand all
540 InitInterFormDict(pFormDict, pDocument); 540 InitInterFormDict(pFormDict, pDocument);
541 } 541 }
542 CFX_ByteString csTag; 542 CFX_ByteString csTag;
543 if (FindInterFormFont(pFormDict, pFont, csTag)) { 543 if (FindInterFormFont(pFormDict, pFont, csTag)) {
544 csNameTag = csTag; 544 csNameTag = csTag;
545 return; 545 return;
546 } 546 }
547 if (!pFormDict) { 547 if (!pFormDict) {
548 InitInterFormDict(pFormDict, pDocument); 548 InitInterFormDict(pFormDict, pDocument);
549 } 549 }
550 CPDF_Dictionary* pDR = pFormDict->GetDict("DR"); 550 CPDF_Dictionary* pDR = pFormDict->GetDictBy("DR");
551 if (!pDR) { 551 if (!pDR) {
552 pDR = new CPDF_Dictionary; 552 pDR = new CPDF_Dictionary;
553 pFormDict->SetAt("DR", pDR); 553 pFormDict->SetAt("DR", pDR);
554 } 554 }
555 CPDF_Dictionary* pFonts = pDR->GetDict("Font"); 555 CPDF_Dictionary* pFonts = pDR->GetDictBy("Font");
556 if (!pFonts) { 556 if (!pFonts) {
557 pFonts = new CPDF_Dictionary; 557 pFonts = new CPDF_Dictionary;
558 pDR->SetAt("Font", pFonts); 558 pDR->SetAt("Font", pFonts);
559 } 559 }
560 if (csNameTag.IsEmpty()) { 560 if (csNameTag.IsEmpty()) {
561 csNameTag = pFont->GetBaseFont(); 561 csNameTag = pFont->GetBaseFont();
562 } 562 }
563 csNameTag.Remove(' '); 563 csNameTag.Remove(' ');
564 csNameTag = 564 csNameTag =
565 CPDF_InterForm::GenerateNewResourceName(pDR, "Font", 4, csNameTag); 565 CPDF_InterForm::GenerateNewResourceName(pDR, "Font", 4, csNameTag);
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
598 return AddNativeInterFormFont(pFormDict, pDocument, charSet, csNameTag); 598 return AddNativeInterFormFont(pFormDict, pDocument, charSet, csNameTag);
599 } 599 }
600 void RemoveInterFormFont(CPDF_Dictionary* pFormDict, const CPDF_Font* pFont) { 600 void RemoveInterFormFont(CPDF_Dictionary* pFormDict, const CPDF_Font* pFont) {
601 if (!pFormDict || !pFont) { 601 if (!pFormDict || !pFont) {
602 return; 602 return;
603 } 603 }
604 CFX_ByteString csTag; 604 CFX_ByteString csTag;
605 if (!FindInterFormFont(pFormDict, pFont, csTag)) { 605 if (!FindInterFormFont(pFormDict, pFont, csTag)) {
606 return; 606 return;
607 } 607 }
608 CPDF_Dictionary* pDR = pFormDict->GetDict("DR"); 608 CPDF_Dictionary* pDR = pFormDict->GetDictBy("DR");
609 CPDF_Dictionary* pFonts = pDR->GetDict("Font"); 609 CPDF_Dictionary* pFonts = pDR->GetDictBy("Font");
610 pFonts->RemoveAt(csTag); 610 pFonts->RemoveAt(csTag);
611 } 611 }
612 void RemoveInterFormFont(CPDF_Dictionary* pFormDict, CFX_ByteString csNameTag) { 612 void RemoveInterFormFont(CPDF_Dictionary* pFormDict, CFX_ByteString csNameTag) {
613 if (!pFormDict || csNameTag.IsEmpty()) { 613 if (!pFormDict || csNameTag.IsEmpty()) {
614 return; 614 return;
615 } 615 }
616 CPDF_Dictionary* pDR = pFormDict->GetDict("DR"); 616 CPDF_Dictionary* pDR = pFormDict->GetDictBy("DR");
617 if (!pDR) { 617 if (!pDR) {
618 return; 618 return;
619 } 619 }
620 CPDF_Dictionary* pFonts = pDR->GetDict("Font"); 620 CPDF_Dictionary* pFonts = pDR->GetDictBy("Font");
621 if (!pFonts) { 621 if (!pFonts) {
622 return; 622 return;
623 } 623 }
624 pFonts->RemoveAt(csNameTag); 624 pFonts->RemoveAt(csNameTag);
625 } 625 }
626 CPDF_Font* GetDefaultInterFormFont(CPDF_Dictionary* pFormDict, 626 CPDF_Font* GetDefaultInterFormFont(CPDF_Dictionary* pFormDict,
627 CPDF_Document* pDocument) { 627 CPDF_Document* pDocument) {
628 if (!pFormDict) { 628 if (!pFormDict) {
629 return NULL; 629 return NULL;
630 } 630 }
631 CPDF_DefaultAppearance cDA = pFormDict->GetString("DA"); 631 CPDF_DefaultAppearance cDA = pFormDict->GetStringBy("DA");
632 CFX_ByteString csFontNameTag; 632 CFX_ByteString csFontNameTag;
633 FX_FLOAT fFontSize; 633 FX_FLOAT fFontSize;
634 cDA.GetFont(csFontNameTag, fFontSize); 634 cDA.GetFont(csFontNameTag, fFontSize);
635 return GetInterFormFont(pFormDict, pDocument, csFontNameTag); 635 return GetInterFormFont(pFormDict, pDocument, csFontNameTag);
636 } 636 }
637 CPDF_IconFit::ScaleMethod CPDF_IconFit::GetScaleMethod() { 637 CPDF_IconFit::ScaleMethod CPDF_IconFit::GetScaleMethod() {
638 if (!m_pDict) { 638 if (!m_pDict) {
639 return Always; 639 return Always;
640 } 640 }
641 CFX_ByteString csSW = m_pDict->GetString("SW", "A"); 641 CFX_ByteString csSW = m_pDict->GetStringBy("SW", "A");
642 if (csSW == "B") { 642 if (csSW == "B") {
643 return Bigger; 643 return Bigger;
644 } 644 }
645 if (csSW == "S") { 645 if (csSW == "S") {
646 return Smaller; 646 return Smaller;
647 } 647 }
648 if (csSW == "N") { 648 if (csSW == "N") {
649 return Never; 649 return Never;
650 } 650 }
651 return Always; 651 return Always;
652 } 652 }
653 FX_BOOL CPDF_IconFit::IsProportionalScale() { 653 FX_BOOL CPDF_IconFit::IsProportionalScale() {
654 if (!m_pDict) { 654 if (!m_pDict) {
655 return TRUE; 655 return TRUE;
656 } 656 }
657 return m_pDict->GetString("S", "P") != "A"; 657 return m_pDict->GetStringBy("S", "P") != "A";
658 } 658 }
659 void CPDF_IconFit::GetIconPosition(FX_FLOAT& fLeft, FX_FLOAT& fBottom) { 659 void CPDF_IconFit::GetIconPosition(FX_FLOAT& fLeft, FX_FLOAT& fBottom) {
660 fLeft = fBottom = 0.5; 660 fLeft = fBottom = 0.5;
661 if (!m_pDict) { 661 if (!m_pDict) {
662 return; 662 return;
663 } 663 }
664 CPDF_Array* pA = m_pDict->GetArray("A"); 664 CPDF_Array* pA = m_pDict->GetArrayBy("A");
665 if (pA) { 665 if (pA) {
666 FX_DWORD dwCount = pA->GetCount(); 666 FX_DWORD dwCount = pA->GetCount();
667 if (dwCount > 0) { 667 if (dwCount > 0) {
668 fLeft = pA->GetNumber(0); 668 fLeft = pA->GetNumberAt(0);
669 } 669 }
670 if (dwCount > 1) { 670 if (dwCount > 1) {
671 fBottom = pA->GetNumber(1); 671 fBottom = pA->GetNumberAt(1);
672 } 672 }
673 } 673 }
674 } 674 }
675 FX_BOOL CPDF_IconFit::GetFittingBounds() { 675 FX_BOOL CPDF_IconFit::GetFittingBounds() {
676 if (!m_pDict) { 676 if (!m_pDict) {
677 return FALSE; 677 return FALSE;
678 } 678 }
679 return m_pDict->GetBoolean("FB"); 679 return m_pDict->GetBooleanBy("FB");
680 } 680 }
681 void SaveCheckedFieldStatus(CPDF_FormField* pField, 681 void SaveCheckedFieldStatus(CPDF_FormField* pField,
682 CFX_ByteArray& statusArray) { 682 CFX_ByteArray& statusArray) {
683 int iCount = pField->CountControls(); 683 int iCount = pField->CountControls();
684 for (int i = 0; i < iCount; i++) { 684 for (int i = 0; i < iCount; i++) {
685 CPDF_FormControl* pControl = pField->GetControl(i); 685 CPDF_FormControl* pControl = pField->GetControl(i);
686 if (!pControl) { 686 if (!pControl) {
687 continue; 687 continue;
688 } 688 }
689 statusArray.Add(pControl->IsChecked() ? 1 : 0); 689 statusArray.Add(pControl->IsChecked() ? 1 : 0);
690 } 690 }
691 } 691 }
692 CPDF_Object* FPDF_GetFieldAttr(CPDF_Dictionary* pFieldDict, 692 CPDF_Object* FPDF_GetFieldAttr(CPDF_Dictionary* pFieldDict,
693 const FX_CHAR* name, 693 const FX_CHAR* name,
694 int nLevel) { 694 int nLevel) {
695 if (nLevel > FPDFDOC_UTILS_MAXRECURSION) { 695 if (nLevel > FPDFDOC_UTILS_MAXRECURSION) {
696 return NULL; 696 return NULL;
697 } 697 }
698 if (!pFieldDict) { 698 if (!pFieldDict) {
699 return NULL; 699 return NULL;
700 } 700 }
701 CPDF_Object* pAttr = pFieldDict->GetElementValue(name); 701 CPDF_Object* pAttr = pFieldDict->GetElementValue(name);
702 if (pAttr) { 702 if (pAttr) {
703 return pAttr; 703 return pAttr;
704 } 704 }
705 CPDF_Dictionary* pParent = pFieldDict->GetDict("Parent"); 705 CPDF_Dictionary* pParent = pFieldDict->GetDictBy("Parent");
706 if (!pParent) { 706 if (!pParent) {
707 return NULL; 707 return NULL;
708 } 708 }
709 return FPDF_GetFieldAttr(pParent, name, nLevel + 1); 709 return FPDF_GetFieldAttr(pParent, name, nLevel + 1);
710 } 710 }
OLDNEW
« no previous file with comments | « core/src/fpdfdoc/doc_tagged.cpp ('k') | core/src/fpdfdoc/doc_viewerPreferences.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698