// 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>
{
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)
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)
{