Merge to XFA: Create top-level public/ header directory.
[pdfium.git] / fpdfsdk / src / fpdftext.cpp
index 264631b..951cde0 100644 (file)
@@ -4,8 +4,10 @@
  
 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 
+#include "../../public/fpdf_text.h"
 #include "../include/fsdk_define.h"
-#include "../include/fpdftext.h"
+#include "../include/fpdfxfa/fpdfxfa_doc.h"
+#include "../include/fpdfxfa/fpdfxfa_page.h"
 
 #ifdef _WIN32
 #include <tchar.h>
@@ -18,9 +20,13 @@ DLLEXPORT FPDF_TEXTPAGE STDCALL FPDFText_LoadPage(FPDF_PAGE page)
 {
        if (!page) return NULL;
        IPDF_TextPage* textpage=NULL;
-       CPDF_ViewerPreferences viewRef(((CPDF_Page*)page)->m_pDocument);
-       textpage=IPDF_TextPage::CreateTextPage((CPDF_Page*)page,viewRef.IsDirectionR2L());
+       CPDFXFA_Page* pPage = (CPDFXFA_Page*)page;
+       if (!pPage->GetPDFPage()) return NULL;
+       CPDFXFA_Document* pDoc = pPage->GetDocument();
+       CPDF_ViewerPreferences viewRef(pDoc->GetPDFDoc());
+       textpage=IPDF_TextPage::CreateTextPage((CPDF_Page*)pPage->GetPDFPage(),viewRef.IsDirectionR2L());
        textpage->ParseTextPage();
+
        return textpage;
 }
 DLLEXPORT void STDCALL FPDFText_ClosePage(FPDF_TEXTPAGE text_page)
@@ -235,12 +241,13 @@ DLLEXPORT void STDCALL FPDFLink_GetRect(FPDF_PAGELINK link_page,int link_index,
        IPDF_LinkExtract* pageLink=(IPDF_LinkExtract*)link_page;
        CFX_RectArray rectArray;
        pageLink->GetRects(link_index,rectArray);
-       CFX_FloatRect rect;
-       rect=rectArray.GetAt(rect_index);
-       *left=rect.left;
-       *right=rect.right;
-       *top=rect.top;
-       *bottom=rect.bottom;
+       if (rect_index >= 0 && rect_index < rectArray.GetSize()) {
+               CFX_FloatRect rect=rectArray.GetAt(rect_index);
+               *left=rect.left;
+               *right=rect.right;
+               *top=rect.top;
+               *bottom=rect.bottom;
+       }
 }
 DLLEXPORT void STDCALL FPDFLink_CloseWebLinks(FPDF_PAGELINK link_page)
 {