| 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 "../include/fpdfppo.h" | 7 #include "../include/fpdfppo.h" |
| 8 #include "../include/fsdk_define.h" | 8 #include "../include/fsdk_define.h" |
| 9 | 9 |
| 10 class CPDF_PageOrganizer | 10 class CPDF_PageOrganizer |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 57 #endif | 57 #endif |
| 58 DInfoDict->SetAt("Producer", new CPDF_String(producerstr)); | 58 DInfoDict->SetAt("Producer", new CPDF_String(producerstr)); |
| 59 | 59 |
| 60 //Set type//////////////////////////////////////////////////////////////
// | 60 //Set type//////////////////////////////////////////////////////////////
// |
| 61 CFX_ByteString cbRootType = pNewRoot->GetString("Type",""); | 61 CFX_ByteString cbRootType = pNewRoot->GetString("Type",""); |
| 62 if( cbRootType.Equal("") ) | 62 if( cbRootType.Equal("") ) |
| 63 { | 63 { |
| 64 pNewRoot->SetAt("Type", new CPDF_Name("Catalog")); | 64 pNewRoot->SetAt("Type", new CPDF_Name("Catalog")); |
| 65 } | 65 } |
| 66 | 66 |
| 67 » CPDF_Dictionary* pNewPages = (CPDF_Dictionary*)pNewRoot->GetElement("Pag
es")->GetDirect(); | 67 » CPDF_Dictionary* pNewPages = (CPDF_Dictionary*)(pNewRoot->GetElement("Pa
ges")? pNewRoot->GetElement("Pages")->GetDirect() : NULL); |
| 68 if(!pNewPages) | 68 if(!pNewPages) |
| 69 { | 69 { |
| 70 pNewPages = new CPDF_Dictionary; | 70 pNewPages = new CPDF_Dictionary; |
| 71 FX_DWORD NewPagesON = pDestPDFDoc->AddIndirectObject(pNewPages); | 71 FX_DWORD NewPagesON = pDestPDFDoc->AddIndirectObject(pNewPages); |
| 72 pNewRoot->SetAt("Pages", new CPDF_Reference(pDestPDFDoc, NewPage
sON)); | 72 pNewRoot->SetAt("Pages", new CPDF_Reference(pDestPDFDoc, NewPage
sON)); |
| 73 } | 73 } |
| 74 | 74 |
| 75 CFX_ByteString cbPageType = pNewPages->GetString("Type",""); | 75 CFX_ByteString cbPageType = pNewPages->GetString("Type",""); |
| 76 if(cbPageType.Equal("")) | 76 if(cbPageType.Equal("")) |
| 77 { | 77 { |
| (...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 304 size_t dwNewObjNum = 0; | 304 size_t dwNewObjNum = 0; |
| 305 | 305 |
| 306 pMapPtrToPtr->Lookup((FX_LPVOID)dwObjnum, (FX_LPVOID&)dwNewObjNum); | 306 pMapPtrToPtr->Lookup((FX_LPVOID)dwObjnum, (FX_LPVOID&)dwNewObjNum); |
| 307 if(dwNewObjNum) | 307 if(dwNewObjNum) |
| 308 { | 308 { |
| 309 return (int)dwNewObjNum; | 309 return (int)dwNewObjNum; |
| 310 } | 310 } |
| 311 else | 311 else |
| 312 { | 312 { |
| 313 CPDF_Object* pClone = pRef->GetDirect()->Clone(); | 313 CPDF_Object* pClone = pRef->GetDirect()->Clone(); |
| 314 » » if(!pClone)» » » return 0; | 314 » » if(!pClone)» » » |
| 315 » » » return 0; |
| 315 | 316 |
| 316 if(pClone->GetType() == PDFOBJ_DICTIONARY) | 317 if(pClone->GetType() == PDFOBJ_DICTIONARY) |
| 317 { | 318 { |
| 318 CPDF_Dictionary* pDictClone = (CPDF_Dictionary*)pClone; | 319 CPDF_Dictionary* pDictClone = (CPDF_Dictionary*)pClone; |
| 319 if(pDictClone->KeyExist("Type")) | 320 if(pDictClone->KeyExist("Type")) |
| 320 { | 321 { |
| 321 CFX_ByteString strType = pDictClone->GetString("
Type"); | 322 CFX_ByteString strType = pDictClone->GetString("
Type"); |
| 322 if(!FXSYS_stricmp(strType, "Pages")) | 323 if(!FXSYS_stricmp(strType, "Pages")) |
| 323 { | 324 { |
| 324 pDictClone->Release(); | 325 pDictClone->Release(); |
| (...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 451 if(!pSrcDict) | 452 if(!pSrcDict) |
| 452 return FALSE; | 453 return FALSE; |
| 453 CPDF_Document* pDstDoc = (CPDF_Document*)dest_doc; | 454 CPDF_Document* pDstDoc = (CPDF_Document*)dest_doc; |
| 454 CPDF_Dictionary* pDstDict = pDstDoc->GetRoot(); | 455 CPDF_Dictionary* pDstDict = pDstDoc->GetRoot(); |
| 455 if(!pDstDict) | 456 if(!pDstDict) |
| 456 return FALSE; | 457 return FALSE; |
| 457 pDstDict->SetAt(FX_BSTRC("ViewerPreferences"), pSrcDict->Clone(TRUE)); | 458 pDstDict->SetAt(FX_BSTRC("ViewerPreferences"), pSrcDict->Clone(TRUE)); |
| 458 return TRUE; | 459 return TRUE; |
| 459 } | 460 } |
| 460 | 461 |
| OLD | NEW |