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 "core/fpdfapi/fpdf_parser/include/cpdf_document.h" | 7 #include "core/fpdfapi/fpdf_parser/include/cpdf_document.h" |
8 | 8 |
9 #include <memory> | 9 #include <memory> |
10 #include <set> | 10 #include <set> |
(...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
295 int nPages = pDoc->GetPageCount(); | 295 int nPages = pDoc->GetPageCount(); |
296 if (iPage < 0 || iPage > nPages) | 296 if (iPage < 0 || iPage > nPages) |
297 return -1; | 297 return -1; |
298 | 298 |
299 if (iPage == nPages) { | 299 if (iPage == nPages) { |
300 CPDF_Array* pPagesList = pPages->GetArrayFor("Kids"); | 300 CPDF_Array* pPagesList = pPages->GetArrayFor("Kids"); |
301 if (!pPagesList) { | 301 if (!pPagesList) { |
302 pPagesList = new CPDF_Array; | 302 pPagesList = new CPDF_Array; |
303 pPages->SetFor("Kids", pPagesList); | 303 pPages->SetFor("Kids", pPagesList); |
304 } | 304 } |
305 pPagesList->Add(pPageDict, pDoc); | 305 pPagesList->Add(new CPDF_Reference(pDoc, pPageDict->GetObjNum())); |
306 pPages->SetIntegerFor("Count", nPages + 1); | 306 pPages->SetIntegerFor("Count", nPages + 1); |
307 pPageDict->SetReferenceFor("Parent", pDoc, pPages->GetObjNum()); | 307 pPageDict->SetReferenceFor("Parent", pDoc, pPages->GetObjNum()); |
308 } else { | 308 } else { |
309 std::set<CPDF_Dictionary*> stack = {pPages}; | 309 std::set<CPDF_Dictionary*> stack = {pPages}; |
310 if (InsertDeletePDFPage(pDoc, pPages, iPage, pPageDict, TRUE, &stack) < 0) | 310 if (InsertDeletePDFPage(pDoc, pPages, iPage, pPageDict, TRUE, &stack) < 0) |
311 return -1; | 311 return -1; |
312 } | 312 } |
313 pageList.InsertAt(iPage, pPageDict->GetObjNum()); | 313 pageList.InsertAt(iPage, pPageDict->GetObjNum()); |
314 return iPage; | 314 return iPage; |
315 } | 315 } |
(...skipping 683 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
999 pLogFont->lfWeight / 5); | 999 pLogFont->lfWeight / 5); |
1000 pFontDesc->SetIntegerFor("CapHeight", capheight); | 1000 pFontDesc->SetIntegerFor("CapHeight", capheight); |
1001 AddIndirectObject(pFontDesc); | 1001 AddIndirectObject(pFontDesc); |
1002 pFontDict->SetReferenceFor("FontDescriptor", this, pFontDesc); | 1002 pFontDict->SetReferenceFor("FontDescriptor", this, pFontDesc); |
1003 hFont = SelectObject(hDC, hFont); | 1003 hFont = SelectObject(hDC, hFont); |
1004 DeleteObject(hFont); | 1004 DeleteObject(hFont); |
1005 DeleteDC(hDC); | 1005 DeleteDC(hDC); |
1006 return LoadFont(pBaseDict); | 1006 return LoadFont(pBaseDict); |
1007 } | 1007 } |
1008 #endif // _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_ | 1008 #endif // _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_ |
OLD | NEW |