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 "public/fpdfview.h" | 7 #include "public/fpdfview.h" |
8 | 8 |
9 #include <memory> | 9 #include <memory> |
10 | 10 |
(...skipping 506 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
517 CPDF_Document* pDoc = CPDFDocumentFromFPDFDocument(document); | 517 CPDF_Document* pDoc = CPDFDocumentFromFPDFDocument(document); |
518 if (!pDoc || !pDoc->GetParser()) | 518 if (!pDoc || !pDoc->GetParser()) |
519 return -1; | 519 return -1; |
520 | 520 |
521 CPDF_Dictionary* pDict = pDoc->GetParser()->GetEncryptDict(); | 521 CPDF_Dictionary* pDict = pDoc->GetParser()->GetEncryptDict(); |
522 return pDict ? pDict->GetIntegerFor("R") : -1; | 522 return pDict ? pDict->GetIntegerFor("R") : -1; |
523 } | 523 } |
524 | 524 |
525 DLLEXPORT int STDCALL FPDF_GetPageCount(FPDF_DOCUMENT document) { | 525 DLLEXPORT int STDCALL FPDF_GetPageCount(FPDF_DOCUMENT document) { |
526 UnderlyingDocumentType* pDoc = UnderlyingFromFPDFDocument(document); | 526 UnderlyingDocumentType* pDoc = UnderlyingFromFPDFDocument(document); |
527 return pDoc ? pDoc->GetPageCount() : 0; | 527 if (!pDoc) |
| 528 return 0; |
| 529 |
| 530 #ifdef PDF_ENABLE_XFA |
| 531 return pDoc->GetXFAPageCount(); |
| 532 #else // PDF_ENABLE_XFA |
| 533 return pDoc->GetPageCount(); |
| 534 #endif // PDF_ENABLE_XFA |
528 } | 535 } |
529 | 536 |
530 DLLEXPORT FPDF_PAGE STDCALL FPDF_LoadPage(FPDF_DOCUMENT document, | 537 DLLEXPORT FPDF_PAGE STDCALL FPDF_LoadPage(FPDF_DOCUMENT document, |
531 int page_index) { | 538 int page_index) { |
532 UnderlyingDocumentType* pDoc = UnderlyingFromFPDFDocument(document); | 539 UnderlyingDocumentType* pDoc = UnderlyingFromFPDFDocument(document); |
533 if (!pDoc) | 540 if (!pDoc) |
534 return nullptr; | 541 return nullptr; |
535 | 542 |
| 543 #ifdef PDF_ENABLE_XFA |
| 544 if (page_index < 0 || page_index >= pDoc->GetXFAPageCount()) |
| 545 return nullptr; |
| 546 return pDoc->GetXFAPage(page_index); |
| 547 #else // PDF_ENABLE_XFA |
536 if (page_index < 0 || page_index >= pDoc->GetPageCount()) | 548 if (page_index < 0 || page_index >= pDoc->GetPageCount()) |
537 return nullptr; | 549 return nullptr; |
538 | 550 |
539 #ifdef PDF_ENABLE_XFA | |
540 return pDoc->GetXFAPage(page_index); | |
541 #else // PDF_ENABLE_XFA | |
542 CPDF_Dictionary* pDict = pDoc->GetPage(page_index); | 551 CPDF_Dictionary* pDict = pDoc->GetPage(page_index); |
543 if (!pDict) | 552 if (!pDict) |
544 return nullptr; | 553 return nullptr; |
545 | 554 |
546 CPDF_Page* pPage = new CPDF_Page(pDoc, pDict, true); | 555 CPDF_Page* pPage = new CPDF_Page(pDoc, pDict, true); |
547 pPage->ParseContent(); | 556 pPage->ParseContent(); |
548 return pPage; | 557 return pPage; |
549 #endif // PDF_ENABLE_XFA | 558 #endif // PDF_ENABLE_XFA |
550 } | 559 } |
551 | 560 |
(...skipping 358 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
910 | 919 |
911 DLLEXPORT int STDCALL FPDF_GetPageSizeByIndex(FPDF_DOCUMENT document, | 920 DLLEXPORT int STDCALL FPDF_GetPageSizeByIndex(FPDF_DOCUMENT document, |
912 int page_index, | 921 int page_index, |
913 double* width, | 922 double* width, |
914 double* height) { | 923 double* height) { |
915 UnderlyingDocumentType* pDoc = UnderlyingFromFPDFDocument(document); | 924 UnderlyingDocumentType* pDoc = UnderlyingFromFPDFDocument(document); |
916 if (!pDoc) | 925 if (!pDoc) |
917 return FALSE; | 926 return FALSE; |
918 | 927 |
919 #ifdef PDF_ENABLE_XFA | 928 #ifdef PDF_ENABLE_XFA |
920 int count = pDoc->GetPageCount(); | 929 int count = pDoc->GetXFAPageCount(); |
921 if (page_index < 0 || page_index >= count) | 930 if (page_index < 0 || page_index >= count) |
922 return FALSE; | 931 return FALSE; |
923 CPDFXFA_Page* pPage = pDoc->GetXFAPage(page_index); | 932 CPDFXFA_Page* pPage = pDoc->GetXFAPage(page_index); |
924 if (!pPage) | 933 if (!pPage) |
925 return FALSE; | 934 return FALSE; |
926 *width = pPage->GetPageWidth(); | 935 *width = pPage->GetPageWidth(); |
927 *height = pPage->GetPageHeight(); | 936 *height = pPage->GetPageHeight(); |
928 #else // PDF_ENABLE_XFA | 937 #else // PDF_ENABLE_XFA |
929 CPDF_Dictionary* pDict = pDoc->GetPage(page_index); | 938 CPDF_Dictionary* pDict = pDoc->GetPage(page_index); |
930 if (!pDict) | 939 if (!pDict) |
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1129 if (!buffer) { | 1138 if (!buffer) { |
1130 *buflen = len; | 1139 *buflen = len; |
1131 } else if (*buflen >= len) { | 1140 } else if (*buflen >= len) { |
1132 memcpy(buffer, utf16Name.c_str(), len); | 1141 memcpy(buffer, utf16Name.c_str(), len); |
1133 *buflen = len; | 1142 *buflen = len; |
1134 } else { | 1143 } else { |
1135 *buflen = -1; | 1144 *buflen = -1; |
1136 } | 1145 } |
1137 return (FPDF_DEST)pDestObj; | 1146 return (FPDF_DEST)pDestObj; |
1138 } | 1147 } |
OLD | NEW |