| 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 <algorithm> | 7 #include <algorithm> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "core/fpdfapi/fpdf_font/include/cpdf_font.h" | 10 #include "core/fpdfapi/fpdf_font/include/cpdf_font.h" |
| (...skipping 368 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 379 return NULL; | 379 return NULL; |
| 380 } | 380 } |
| 381 CPDF_Dictionary* pDR = pFormDict->GetDictBy("DR"); | 381 CPDF_Dictionary* pDR = pFormDict->GetDictBy("DR"); |
| 382 if (!pDR) { | 382 if (!pDR) { |
| 383 return NULL; | 383 return NULL; |
| 384 } | 384 } |
| 385 CPDF_Dictionary* pFonts = pDR->GetDictBy("Font"); | 385 CPDF_Dictionary* pFonts = pDR->GetDictBy("Font"); |
| 386 if (!pFonts) { | 386 if (!pFonts) { |
| 387 return NULL; | 387 return NULL; |
| 388 } | 388 } |
| 389 CPDF_Dictionary* pElement = pFonts->GetDictBy(csAlias.AsStringC()); | 389 CPDF_Dictionary* pElement = pFonts->GetDictBy(csAlias); |
| 390 if (!pElement) { | 390 if (!pElement) { |
| 391 return NULL; | 391 return NULL; |
| 392 } | 392 } |
| 393 if (pElement->GetStringBy("Type") == "Font") { | 393 if (pElement->GetStringBy("Type") == "Font") { |
| 394 return pDocument->LoadFont(pElement); | 394 return pDocument->LoadFont(pElement); |
| 395 } | 395 } |
| 396 return NULL; | 396 return NULL; |
| 397 } | 397 } |
| 398 CPDF_Font* GetInterFormFont(CPDF_Dictionary* pFormDict, | 398 CPDF_Font* GetInterFormFont(CPDF_Dictionary* pFormDict, |
| 399 CPDF_Document* pDocument, | 399 CPDF_Document* pDocument, |
| (...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 598 if (!pFonts) { | 598 if (!pFonts) { |
| 599 pFonts = new CPDF_Dictionary; | 599 pFonts = new CPDF_Dictionary; |
| 600 pDR->SetAt("Font", pFonts); | 600 pDR->SetAt("Font", pFonts); |
| 601 } | 601 } |
| 602 if (csNameTag.IsEmpty()) { | 602 if (csNameTag.IsEmpty()) { |
| 603 csNameTag = pFont->GetBaseFont(); | 603 csNameTag = pFont->GetBaseFont(); |
| 604 } | 604 } |
| 605 csNameTag.Remove(' '); | 605 csNameTag.Remove(' '); |
| 606 csNameTag = CPDF_InterForm::GenerateNewResourceName(pDR, "Font", 4, | 606 csNameTag = CPDF_InterForm::GenerateNewResourceName(pDR, "Font", 4, |
| 607 csNameTag.c_str()); | 607 csNameTag.c_str()); |
| 608 pFonts->SetAtReference(csNameTag.AsStringC(), pDocument, | 608 pFonts->SetAtReference(csNameTag, pDocument, pFont->GetFontDict()); |
| 609 pFont->GetFontDict()); | |
| 610 } | 609 } |
| 611 CPDF_Font* AddNativeInterFormFont(CPDF_Dictionary*& pFormDict, | 610 CPDF_Font* AddNativeInterFormFont(CPDF_Dictionary*& pFormDict, |
| 612 CPDF_Document* pDocument, | 611 CPDF_Document* pDocument, |
| 613 uint8_t charSet, | 612 uint8_t charSet, |
| 614 CFX_ByteString& csNameTag) { | 613 CFX_ByteString& csNameTag) { |
| 615 if (!pFormDict) { | 614 if (!pFormDict) { |
| 616 InitInterFormDict(pFormDict, pDocument); | 615 InitInterFormDict(pFormDict, pDocument); |
| 617 } | 616 } |
| 618 CFX_ByteString csTemp; | 617 CFX_ByteString csTemp; |
| 619 CPDF_Font* pFont = | 618 CPDF_Font* pFont = |
| (...skipping 23 matching lines...) Expand all Loading... |
| 643 void RemoveInterFormFont(CPDF_Dictionary* pFormDict, const CPDF_Font* pFont) { | 642 void RemoveInterFormFont(CPDF_Dictionary* pFormDict, const CPDF_Font* pFont) { |
| 644 if (!pFormDict || !pFont) { | 643 if (!pFormDict || !pFont) { |
| 645 return; | 644 return; |
| 646 } | 645 } |
| 647 CFX_ByteString csTag; | 646 CFX_ByteString csTag; |
| 648 if (!FindInterFormFont(pFormDict, pFont, csTag)) { | 647 if (!FindInterFormFont(pFormDict, pFont, csTag)) { |
| 649 return; | 648 return; |
| 650 } | 649 } |
| 651 CPDF_Dictionary* pDR = pFormDict->GetDictBy("DR"); | 650 CPDF_Dictionary* pDR = pFormDict->GetDictBy("DR"); |
| 652 CPDF_Dictionary* pFonts = pDR->GetDictBy("Font"); | 651 CPDF_Dictionary* pFonts = pDR->GetDictBy("Font"); |
| 653 pFonts->RemoveAt(csTag.AsStringC()); | 652 pFonts->RemoveAt(csTag); |
| 654 } | 653 } |
| 655 void RemoveInterFormFont(CPDF_Dictionary* pFormDict, CFX_ByteString csNameTag) { | 654 void RemoveInterFormFont(CPDF_Dictionary* pFormDict, CFX_ByteString csNameTag) { |
| 656 if (!pFormDict || csNameTag.IsEmpty()) { | 655 if (!pFormDict || csNameTag.IsEmpty()) { |
| 657 return; | 656 return; |
| 658 } | 657 } |
| 659 CPDF_Dictionary* pDR = pFormDict->GetDictBy("DR"); | 658 CPDF_Dictionary* pDR = pFormDict->GetDictBy("DR"); |
| 660 if (!pDR) { | 659 if (!pDR) { |
| 661 return; | 660 return; |
| 662 } | 661 } |
| 663 CPDF_Dictionary* pFonts = pDR->GetDictBy("Font"); | 662 CPDF_Dictionary* pFonts = pDR->GetDictBy("Font"); |
| 664 if (!pFonts) { | 663 if (!pFonts) { |
| 665 return; | 664 return; |
| 666 } | 665 } |
| 667 pFonts->RemoveAt(csNameTag.AsStringC()); | 666 pFonts->RemoveAt(csNameTag); |
| 668 } | 667 } |
| 669 | 668 |
| 670 CPDF_Font* GetDefaultInterFormFont(CPDF_Dictionary* pFormDict, | 669 CPDF_Font* GetDefaultInterFormFont(CPDF_Dictionary* pFormDict, |
| 671 CPDF_Document* pDocument) { | 670 CPDF_Document* pDocument) { |
| 672 if (!pFormDict) { | 671 if (!pFormDict) { |
| 673 return NULL; | 672 return NULL; |
| 674 } | 673 } |
| 675 CPDF_DefaultAppearance cDA(pFormDict->GetStringBy("DA")); | 674 CPDF_DefaultAppearance cDA(pFormDict->GetStringBy("DA")); |
| 676 CFX_ByteString csFontNameTag; | 675 CFX_ByteString csFontNameTag; |
| 677 FX_FLOAT fFontSize; | 676 FX_FLOAT fFontSize; |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 746 CPDF_Object* pAttr = pFieldDict->GetDirectObjectBy(name); | 745 CPDF_Object* pAttr = pFieldDict->GetDirectObjectBy(name); |
| 747 if (pAttr) { | 746 if (pAttr) { |
| 748 return pAttr; | 747 return pAttr; |
| 749 } | 748 } |
| 750 CPDF_Dictionary* pParent = pFieldDict->GetDictBy("Parent"); | 749 CPDF_Dictionary* pParent = pFieldDict->GetDictBy("Parent"); |
| 751 if (!pParent) { | 750 if (!pParent) { |
| 752 return NULL; | 751 return NULL; |
| 753 } | 752 } |
| 754 return FPDF_GetFieldAttr(pParent, name, nLevel + 1); | 753 return FPDF_GetFieldAttr(pParent, name, nLevel + 1); |
| 755 } | 754 } |
| OLD | NEW |