| OLD | NEW | 
|---|
| 1 // Copyright 2016 PDFium Authors. All rights reserved. | 1 // Copyright 2016 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 "core/fpdfdoc/cpvt_generateap.h" | 7 #include "core/fpdfdoc/cpvt_generateap.h" | 
| 8 | 8 | 
| 9 #include "core/fpdfapi/fpdf_font/include/cpdf_font.h" | 9 #include "core/fpdfapi/fpdf_font/include/cpdf_font.h" | 
| 10 #include "core/fpdfapi/fpdf_parser/include/cpdf_dictionary.h" | 10 #include "core/fpdfapi/fpdf_parser/include/cpdf_dictionary.h" | 
| (...skipping 28 matching lines...) Expand all  Loading... | 
| 39 | 39 | 
| 40   CPDF_SimpleParser syntax(DA.AsStringC()); | 40   CPDF_SimpleParser syntax(DA.AsStringC()); | 
| 41   syntax.FindTagParamFromStart("Tf", 2); | 41   syntax.FindTagParamFromStart("Tf", 2); | 
| 42   CFX_ByteString sFontName(syntax.GetWord()); | 42   CFX_ByteString sFontName(syntax.GetWord()); | 
| 43   sFontName = PDF_NameDecode(sFontName); | 43   sFontName = PDF_NameDecode(sFontName); | 
| 44   if (sFontName.IsEmpty()) | 44   if (sFontName.IsEmpty()) | 
| 45     return false; | 45     return false; | 
| 46 | 46 | 
| 47   FX_FLOAT fFontSize = FX_atof(syntax.GetWord()); | 47   FX_FLOAT fFontSize = FX_atof(syntax.GetWord()); | 
| 48   CPVT_Color crText = CPVT_Color::ParseColor(DA); | 48   CPVT_Color crText = CPVT_Color::ParseColor(DA); | 
| 49   FX_BOOL bUseFormRes = FALSE; | 49   CPDF_Dictionary* pDRDict = pFormDict->GetDictBy("DR"); | 
| 50   CPDF_Dictionary* pFontDict = nullptr; | 50   if (!pDRDict) | 
| 51   CPDF_Dictionary* pDRDict = pAnnotDict->GetDictBy("DR"); | 51     return false; | 
| 52   if (!pDRDict) { | 52 | 
| 53     pDRDict = pFormDict->GetDictBy("DR"); | 53   CPDF_Dictionary* pDRFontDict = pDRDict->GetDictBy("Font"); | 
| 54     bUseFormRes = TRUE; |  | 
| 55   } |  | 
| 56   CPDF_Dictionary* pDRFontDict = pDRDict ? pDRDict->GetDictBy("Font") : nullptr; |  | 
| 57   if (pDRFontDict) { |  | 
| 58     pFontDict = pDRFontDict->GetDictBy(sFontName.Mid(1)); |  | 
| 59     if (!pFontDict && !bUseFormRes) { |  | 
| 60       pDRDict = pFormDict->GetDictBy("DR"); |  | 
| 61       pDRFontDict = pDRDict->GetDictBy("Font"); |  | 
| 62       if (pDRFontDict) |  | 
| 63         pFontDict = pDRFontDict->GetDictBy(sFontName.Mid(1)); |  | 
| 64     } |  | 
| 65   } |  | 
| 66   if (!pDRFontDict) | 54   if (!pDRFontDict) | 
| 67     return false; | 55     return false; | 
| 68 | 56 | 
|  | 57   CPDF_Dictionary* pFontDict = pDRFontDict->GetDictBy(sFontName.Mid(1)); | 
| 69   if (!pFontDict) { | 58   if (!pFontDict) { | 
| 70     pFontDict = new CPDF_Dictionary; | 59     pFontDict = new CPDF_Dictionary; | 
| 71     pFontDict->SetAtName("Type", "Font"); | 60     pFontDict->SetAtName("Type", "Font"); | 
| 72     pFontDict->SetAtName("Subtype", "Type1"); | 61     pFontDict->SetAtName("Subtype", "Type1"); | 
| 73     pFontDict->SetAtName("BaseFont", "Helvetica"); | 62     pFontDict->SetAtName("BaseFont", "Helvetica"); | 
| 74     pFontDict->SetAtName("Encoding", "WinAnsiEncoding"); | 63     pFontDict->SetAtName("Encoding", "WinAnsiEncoding"); | 
| 75     pDoc->AddIndirectObject(pFontDict); | 64     pDoc->AddIndirectObject(pFontDict); | 
| 76     pDRFontDict->SetAtReference(sFontName.Mid(1), pDoc, pFontDict); | 65     pDRFontDict->SetAtReference(sFontName.Mid(1), pDoc, pFontDict); | 
| 77   } | 66   } | 
| 78   CPDF_Font* pDefFont = pDoc->LoadFont(pFontDict); | 67   CPDF_Font* pDefFont = pDoc->LoadFont(pFontDict); | 
| (...skipping 1266 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1345                                                  int32_t nFontIndex, | 1334                                                  int32_t nFontIndex, | 
| 1346                                                  FX_FLOAT fFontSize) { | 1335                                                  FX_FLOAT fFontSize) { | 
| 1347   CFX_ByteTextBuf sRet; | 1336   CFX_ByteTextBuf sRet; | 
| 1348   if (pFontMap) { | 1337   if (pFontMap) { | 
| 1349     CFX_ByteString sFontAlias = pFontMap->GetPDFFontAlias(nFontIndex); | 1338     CFX_ByteString sFontAlias = pFontMap->GetPDFFontAlias(nFontIndex); | 
| 1350     if (sFontAlias.GetLength() > 0 && fFontSize > 0) | 1339     if (sFontAlias.GetLength() > 0 && fFontSize > 0) | 
| 1351       sRet << "/" << sFontAlias << " " << fFontSize << " Tf\n"; | 1340       sRet << "/" << sFontAlias << " " << fFontSize << " Tf\n"; | 
| 1352   } | 1341   } | 
| 1353   return sRet.MakeString(); | 1342   return sRet.MakeString(); | 
| 1354 } | 1343 } | 
| OLD | NEW | 
|---|