From 3f3b45cc74b0499912409f766a595945dbbfc4c5 Mon Sep 17 00:00:00 2001 From: John Abd-El-Malek Date: Fri, 23 May 2014 17:28:10 -0700 Subject: Convert all line endings to LF. --- fpdfsdk/src/fpdftext.cpp | 556 +++++++++++++++++++++++------------------------ 1 file changed, 278 insertions(+), 278 deletions(-) (limited to 'fpdfsdk/src/fpdftext.cpp') diff --git a/fpdfsdk/src/fpdftext.cpp b/fpdfsdk/src/fpdftext.cpp index 6042fcc7b1..1aa0542124 100644 --- a/fpdfsdk/src/fpdftext.cpp +++ b/fpdfsdk/src/fpdftext.cpp @@ -1,278 +1,278 @@ -// Copyright 2014 PDFium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com - -#include "../include/fsdk_define.h" -#include "../include/fpdftext.h" - -#ifdef _WIN32 -#include -#endif - - // jabdelmalek: commented out to build on Linux. Not used. - // extern HANDLE g_hModule; - -DLLEXPORT FPDF_TEXTPAGE STDCALL FPDFText_LoadPage(FPDF_PAGE page) -{ - if (!page) return NULL; - IPDF_TextPage* textpage=NULL; - try - { - CPDF_ViewerPreferences viewRef(((CPDF_Page*)page)->m_pDocument); - textpage=IPDF_TextPage::CreateTextPage((CPDF_Page*)page,viewRef.IsDirectionR2L()); - textpage->ParseTextPage(); - } - catch (...) - { - if (textpage) - delete textpage; - return NULL; - } - return textpage; -} -DLLEXPORT void STDCALL FPDFText_ClosePage(FPDF_TEXTPAGE text_page) -{ - if (text_page){ - IPDF_TextPage* textpage=(IPDF_TextPage*)text_page; - delete textpage; - text_page=NULL; - } -} -DLLEXPORT int STDCALL FPDFText_CountChars(FPDF_TEXTPAGE text_page) -{ - if (!text_page) return -1; - IPDF_TextPage* textpage=(IPDF_TextPage*)text_page; - return textpage->CountChars(); -} -DLLEXPORT unsigned int STDCALL FPDFText_GetUnicode(FPDF_TEXTPAGE text_page, int index) -{ - if (!text_page) return -1; - IPDF_TextPage* textpage=(IPDF_TextPage*)text_page; - - if (index<0 || index>=textpage->CountChars()) return 0; - - FPDF_CHAR_INFO charinfo; - textpage->GetCharInfo(index,charinfo); - return charinfo.m_Unicode; -} -DLLEXPORT double STDCALL FPDFText_GetFontSize(FPDF_TEXTPAGE text_page, int index) -{ - if (!text_page) return 0; - IPDF_TextPage* textpage=(IPDF_TextPage*)text_page; - - if (index<0 || index>=textpage->CountChars()) return 0; - - FPDF_CHAR_INFO charinfo; - textpage->GetCharInfo(index,charinfo); - return charinfo.m_FontSize; -} - -DLLEXPORT void STDCALL FPDFText_GetCharBox(FPDF_TEXTPAGE text_page, int index,double* left, - double* right, double* bottom, double* top) -{ - if (!text_page) return; - IPDF_TextPage* textpage=(IPDF_TextPage*)text_page; - - if (index<0 || index>=textpage->CountChars()) return ; - FPDF_CHAR_INFO charinfo; - textpage->GetCharInfo(index,charinfo); - *left=charinfo.m_CharBox.left; - *right=charinfo.m_CharBox.right; - *bottom=charinfo.m_CharBox.bottom; - *top=charinfo.m_CharBox.top; -} - -//select -DLLEXPORT int STDCALL FPDFText_GetCharIndexAtPos(FPDF_TEXTPAGE text_page,double x,double y,double xTorelance,double yTorelance) -{ - if (!text_page) return -3; - IPDF_TextPage* textpage=(IPDF_TextPage*)text_page; - return textpage->GetIndexAtPos((FX_FLOAT)x,(FX_FLOAT)y,(FX_FLOAT)xTorelance,(FX_FLOAT)yTorelance); -} - -DLLEXPORT int STDCALL FPDFText_GetText(FPDF_TEXTPAGE text_page,int start,int count,unsigned short* result) -{ - if (!text_page) return 0; - IPDF_TextPage* textpage=(IPDF_TextPage*)text_page; - - if (start>=textpage->CountChars()) return 0; - - CFX_WideString str=textpage->GetPageText(start,count); - if(str.GetLength()>count) - str = str.Left(count); - - CFX_ByteString cbUTF16str = str.UTF16LE_Encode(); - FXSYS_memcpy(result,cbUTF16str.GetBuffer(cbUTF16str.GetLength()),cbUTF16str.GetLength()); - cbUTF16str.ReleaseBuffer(cbUTF16str.GetLength()); - - return cbUTF16str.GetLength()/sizeof(unsigned short); -} - -DLLEXPORT int STDCALL FPDFText_CountRects(FPDF_TEXTPAGE text_page,int start,int count) -{ - if (!text_page) return 0; - IPDF_TextPage* textpage=(IPDF_TextPage*)text_page; - return textpage->CountRects(start,count); - -} -DLLEXPORT void STDCALL FPDFText_GetRect(FPDF_TEXTPAGE text_page,int rect_index, double* left,double* top, - double* right, double* bottom) -{ - if (!text_page) return; - IPDF_TextPage* textpage=(IPDF_TextPage*)text_page; - CFX_FloatRect rect; - textpage->GetRect(rect_index,rect.left,rect.top,rect.right,rect.bottom); - *left=rect.left; - *top=rect.top; - *right=rect.right; - *bottom=rect.bottom; -} - -DLLEXPORT int STDCALL FPDFText_GetBoundedText(FPDF_TEXTPAGE text_page,double left, double top, - double right, double bottom,unsigned short* buffer,int buflen) -{ - if (!text_page) return 0; - IPDF_TextPage* textpage=(IPDF_TextPage*)text_page; - CFX_FloatRect rect((FX_FLOAT)left,(FX_FLOAT)bottom,(FX_FLOAT)right,(FX_FLOAT)top); - CFX_WideString str=textpage->GetTextByRect(rect); - - if (buflen<=0 || buffer==NULL) - { - return str.GetLength(); - } - - CFX_ByteString cbUTF16Str = str.UTF16LE_Encode(); - int len = cbUTF16Str.GetLength()/sizeof(unsigned short); - int size = buflen > len ? len : buflen; - FXSYS_memcpy(buffer,cbUTF16Str.GetBuffer(size*sizeof(unsigned short)),size*sizeof(unsigned short)); - cbUTF16Str.ReleaseBuffer(size*sizeof(unsigned short)); - - return size; - -} - -//Search -//-1 for end -DLLEXPORT FPDF_SCHHANDLE STDCALL FPDFText_FindStart(FPDF_TEXTPAGE text_page,FPDF_WIDESTRING findwhat,unsigned long flags,int start_index) -{ - if (!text_page) return NULL; - IPDF_TextPageFind* textpageFind=NULL; - try - { - textpageFind=IPDF_TextPageFind::CreatePageFind((IPDF_TextPage*)text_page); - textpageFind->FindFirst(CFX_WideString::FromUTF16LE(findwhat),flags,start_index); - } - catch (...) - { - if (textpageFind) - delete textpageFind; - return NULL; - } - return textpageFind; -} -DLLEXPORT FPDF_BOOL STDCALL FPDFText_FindNext(FPDF_SCHHANDLE handle) -{ - if (!handle) return FALSE; - IPDF_TextPageFind* textpageFind=(IPDF_TextPageFind*)handle; - return textpageFind->FindNext(); -} -DLLEXPORT FPDF_BOOL STDCALL FPDFText_FindPrev(FPDF_SCHHANDLE handle) -{ - if (!handle) return FALSE; - IPDF_TextPageFind* textpageFind=(IPDF_TextPageFind*)handle; - return textpageFind->FindPrev(); -} -DLLEXPORT int STDCALL FPDFText_GetSchResultIndex(FPDF_SCHHANDLE handle) -{ - if (!handle) return 0; - IPDF_TextPageFind* textpageFind=(IPDF_TextPageFind*)handle; - return textpageFind->GetCurOrder(); -} -DLLEXPORT int STDCALL FPDFText_GetSchCount(FPDF_SCHHANDLE handle) -{ - if (!handle) return 0; - IPDF_TextPageFind* textpageFind=(IPDF_TextPageFind*)handle; - return textpageFind->GetMatchedCount(); -} -DLLEXPORT void STDCALL FPDFText_FindClose(FPDF_SCHHANDLE handle) -{ - if (!handle) return; - IPDF_TextPageFind* textpageFind=(IPDF_TextPageFind*)handle; - delete textpageFind; - handle=NULL; -} - -//web link -DLLEXPORT FPDF_PAGELINK STDCALL FPDFLink_LoadWebLinks(FPDF_TEXTPAGE text_page) -{ - if (!text_page) return NULL; - IPDF_LinkExtract* pageLink=NULL; - try - { - pageLink=IPDF_LinkExtract::CreateLinkExtract(); - pageLink->ExtractLinks((IPDF_TextPage*)text_page); - } - catch (...) - { - if (pageLink) - delete pageLink; - return NULL; - } - return pageLink; -} -DLLEXPORT int STDCALL FPDFLink_CountWebLinks(FPDF_PAGELINK link_page) -{ - if (!link_page) return 0; - IPDF_LinkExtract* pageLink=(IPDF_LinkExtract*)link_page; - return pageLink->CountLinks(); -} -DLLEXPORT int STDCALL FPDFLink_GetURL(FPDF_PAGELINK link_page,int link_index, unsigned short* buffer,int buflen) -{ - if (!link_page) return 0; - IPDF_LinkExtract* pageLink=(IPDF_LinkExtract*)link_page; - CFX_WideString url=pageLink->GetURL(link_index); - - CFX_ByteString cbUTF16URL = url.UTF16LE_Encode(); - int len= cbUTF16URL.GetLength()/sizeof(unsigned short); - if (buffer==NULL || buflen<=0) - return len; - int size=len0) - { - FXSYS_memcpy(buffer,cbUTF16URL.GetBuffer(size*sizeof(unsigned short)),size*sizeof(unsigned short)); - cbUTF16URL.ReleaseBuffer(size*sizeof(unsigned short)); - } - return size; -} -DLLEXPORT int STDCALL FPDFLink_CountRects(FPDF_PAGELINK link_page,int link_index) -{ - if (!link_page) return 0; - IPDF_LinkExtract* pageLink=(IPDF_LinkExtract*)link_page; - CFX_RectArray rectArray; - pageLink->GetRects(link_index,rectArray); - return rectArray.GetSize(); -} -DLLEXPORT void STDCALL FPDFLink_GetRect(FPDF_PAGELINK link_page,int link_index, int rect_index, double* left, - double* top,double* right, double* bottom) -{ - if (!link_page) return; - 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; -} -DLLEXPORT void STDCALL FPDFLink_CloseWebLinks(FPDF_PAGELINK link_page) -{ - if (!link_page) return; - IPDF_LinkExtract* pageLink=(IPDF_LinkExtract*)link_page; - delete pageLink; - pageLink =NULL; -} - +// Copyright 2014 PDFium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com + +#include "../include/fsdk_define.h" +#include "../include/fpdftext.h" + +#ifdef _WIN32 +#include +#endif + + // jabdelmalek: commented out to build on Linux. Not used. + // extern HANDLE g_hModule; + +DLLEXPORT FPDF_TEXTPAGE STDCALL FPDFText_LoadPage(FPDF_PAGE page) +{ + if (!page) return NULL; + IPDF_TextPage* textpage=NULL; + try + { + CPDF_ViewerPreferences viewRef(((CPDF_Page*)page)->m_pDocument); + textpage=IPDF_TextPage::CreateTextPage((CPDF_Page*)page,viewRef.IsDirectionR2L()); + textpage->ParseTextPage(); + } + catch (...) + { + if (textpage) + delete textpage; + return NULL; + } + return textpage; +} +DLLEXPORT void STDCALL FPDFText_ClosePage(FPDF_TEXTPAGE text_page) +{ + if (text_page){ + IPDF_TextPage* textpage=(IPDF_TextPage*)text_page; + delete textpage; + text_page=NULL; + } +} +DLLEXPORT int STDCALL FPDFText_CountChars(FPDF_TEXTPAGE text_page) +{ + if (!text_page) return -1; + IPDF_TextPage* textpage=(IPDF_TextPage*)text_page; + return textpage->CountChars(); +} +DLLEXPORT unsigned int STDCALL FPDFText_GetUnicode(FPDF_TEXTPAGE text_page, int index) +{ + if (!text_page) return -1; + IPDF_TextPage* textpage=(IPDF_TextPage*)text_page; + + if (index<0 || index>=textpage->CountChars()) return 0; + + FPDF_CHAR_INFO charinfo; + textpage->GetCharInfo(index,charinfo); + return charinfo.m_Unicode; +} +DLLEXPORT double STDCALL FPDFText_GetFontSize(FPDF_TEXTPAGE text_page, int index) +{ + if (!text_page) return 0; + IPDF_TextPage* textpage=(IPDF_TextPage*)text_page; + + if (index<0 || index>=textpage->CountChars()) return 0; + + FPDF_CHAR_INFO charinfo; + textpage->GetCharInfo(index,charinfo); + return charinfo.m_FontSize; +} + +DLLEXPORT void STDCALL FPDFText_GetCharBox(FPDF_TEXTPAGE text_page, int index,double* left, + double* right, double* bottom, double* top) +{ + if (!text_page) return; + IPDF_TextPage* textpage=(IPDF_TextPage*)text_page; + + if (index<0 || index>=textpage->CountChars()) return ; + FPDF_CHAR_INFO charinfo; + textpage->GetCharInfo(index,charinfo); + *left=charinfo.m_CharBox.left; + *right=charinfo.m_CharBox.right; + *bottom=charinfo.m_CharBox.bottom; + *top=charinfo.m_CharBox.top; +} + +//select +DLLEXPORT int STDCALL FPDFText_GetCharIndexAtPos(FPDF_TEXTPAGE text_page,double x,double y,double xTorelance,double yTorelance) +{ + if (!text_page) return -3; + IPDF_TextPage* textpage=(IPDF_TextPage*)text_page; + return textpage->GetIndexAtPos((FX_FLOAT)x,(FX_FLOAT)y,(FX_FLOAT)xTorelance,(FX_FLOAT)yTorelance); +} + +DLLEXPORT int STDCALL FPDFText_GetText(FPDF_TEXTPAGE text_page,int start,int count,unsigned short* result) +{ + if (!text_page) return 0; + IPDF_TextPage* textpage=(IPDF_TextPage*)text_page; + + if (start>=textpage->CountChars()) return 0; + + CFX_WideString str=textpage->GetPageText(start,count); + if(str.GetLength()>count) + str = str.Left(count); + + CFX_ByteString cbUTF16str = str.UTF16LE_Encode(); + FXSYS_memcpy(result,cbUTF16str.GetBuffer(cbUTF16str.GetLength()),cbUTF16str.GetLength()); + cbUTF16str.ReleaseBuffer(cbUTF16str.GetLength()); + + return cbUTF16str.GetLength()/sizeof(unsigned short); +} + +DLLEXPORT int STDCALL FPDFText_CountRects(FPDF_TEXTPAGE text_page,int start,int count) +{ + if (!text_page) return 0; + IPDF_TextPage* textpage=(IPDF_TextPage*)text_page; + return textpage->CountRects(start,count); + +} +DLLEXPORT void STDCALL FPDFText_GetRect(FPDF_TEXTPAGE text_page,int rect_index, double* left,double* top, + double* right, double* bottom) +{ + if (!text_page) return; + IPDF_TextPage* textpage=(IPDF_TextPage*)text_page; + CFX_FloatRect rect; + textpage->GetRect(rect_index,rect.left,rect.top,rect.right,rect.bottom); + *left=rect.left; + *top=rect.top; + *right=rect.right; + *bottom=rect.bottom; +} + +DLLEXPORT int STDCALL FPDFText_GetBoundedText(FPDF_TEXTPAGE text_page,double left, double top, + double right, double bottom,unsigned short* buffer,int buflen) +{ + if (!text_page) return 0; + IPDF_TextPage* textpage=(IPDF_TextPage*)text_page; + CFX_FloatRect rect((FX_FLOAT)left,(FX_FLOAT)bottom,(FX_FLOAT)right,(FX_FLOAT)top); + CFX_WideString str=textpage->GetTextByRect(rect); + + if (buflen<=0 || buffer==NULL) + { + return str.GetLength(); + } + + CFX_ByteString cbUTF16Str = str.UTF16LE_Encode(); + int len = cbUTF16Str.GetLength()/sizeof(unsigned short); + int size = buflen > len ? len : buflen; + FXSYS_memcpy(buffer,cbUTF16Str.GetBuffer(size*sizeof(unsigned short)),size*sizeof(unsigned short)); + cbUTF16Str.ReleaseBuffer(size*sizeof(unsigned short)); + + return size; + +} + +//Search +//-1 for end +DLLEXPORT FPDF_SCHHANDLE STDCALL FPDFText_FindStart(FPDF_TEXTPAGE text_page,FPDF_WIDESTRING findwhat,unsigned long flags,int start_index) +{ + if (!text_page) return NULL; + IPDF_TextPageFind* textpageFind=NULL; + try + { + textpageFind=IPDF_TextPageFind::CreatePageFind((IPDF_TextPage*)text_page); + textpageFind->FindFirst(CFX_WideString::FromUTF16LE(findwhat),flags,start_index); + } + catch (...) + { + if (textpageFind) + delete textpageFind; + return NULL; + } + return textpageFind; +} +DLLEXPORT FPDF_BOOL STDCALL FPDFText_FindNext(FPDF_SCHHANDLE handle) +{ + if (!handle) return FALSE; + IPDF_TextPageFind* textpageFind=(IPDF_TextPageFind*)handle; + return textpageFind->FindNext(); +} +DLLEXPORT FPDF_BOOL STDCALL FPDFText_FindPrev(FPDF_SCHHANDLE handle) +{ + if (!handle) return FALSE; + IPDF_TextPageFind* textpageFind=(IPDF_TextPageFind*)handle; + return textpageFind->FindPrev(); +} +DLLEXPORT int STDCALL FPDFText_GetSchResultIndex(FPDF_SCHHANDLE handle) +{ + if (!handle) return 0; + IPDF_TextPageFind* textpageFind=(IPDF_TextPageFind*)handle; + return textpageFind->GetCurOrder(); +} +DLLEXPORT int STDCALL FPDFText_GetSchCount(FPDF_SCHHANDLE handle) +{ + if (!handle) return 0; + IPDF_TextPageFind* textpageFind=(IPDF_TextPageFind*)handle; + return textpageFind->GetMatchedCount(); +} +DLLEXPORT void STDCALL FPDFText_FindClose(FPDF_SCHHANDLE handle) +{ + if (!handle) return; + IPDF_TextPageFind* textpageFind=(IPDF_TextPageFind*)handle; + delete textpageFind; + handle=NULL; +} + +//web link +DLLEXPORT FPDF_PAGELINK STDCALL FPDFLink_LoadWebLinks(FPDF_TEXTPAGE text_page) +{ + if (!text_page) return NULL; + IPDF_LinkExtract* pageLink=NULL; + try + { + pageLink=IPDF_LinkExtract::CreateLinkExtract(); + pageLink->ExtractLinks((IPDF_TextPage*)text_page); + } + catch (...) + { + if (pageLink) + delete pageLink; + return NULL; + } + return pageLink; +} +DLLEXPORT int STDCALL FPDFLink_CountWebLinks(FPDF_PAGELINK link_page) +{ + if (!link_page) return 0; + IPDF_LinkExtract* pageLink=(IPDF_LinkExtract*)link_page; + return pageLink->CountLinks(); +} +DLLEXPORT int STDCALL FPDFLink_GetURL(FPDF_PAGELINK link_page,int link_index, unsigned short* buffer,int buflen) +{ + if (!link_page) return 0; + IPDF_LinkExtract* pageLink=(IPDF_LinkExtract*)link_page; + CFX_WideString url=pageLink->GetURL(link_index); + + CFX_ByteString cbUTF16URL = url.UTF16LE_Encode(); + int len= cbUTF16URL.GetLength()/sizeof(unsigned short); + if (buffer==NULL || buflen<=0) + return len; + int size=len0) + { + FXSYS_memcpy(buffer,cbUTF16URL.GetBuffer(size*sizeof(unsigned short)),size*sizeof(unsigned short)); + cbUTF16URL.ReleaseBuffer(size*sizeof(unsigned short)); + } + return size; +} +DLLEXPORT int STDCALL FPDFLink_CountRects(FPDF_PAGELINK link_page,int link_index) +{ + if (!link_page) return 0; + IPDF_LinkExtract* pageLink=(IPDF_LinkExtract*)link_page; + CFX_RectArray rectArray; + pageLink->GetRects(link_index,rectArray); + return rectArray.GetSize(); +} +DLLEXPORT void STDCALL FPDFLink_GetRect(FPDF_PAGELINK link_page,int link_index, int rect_index, double* left, + double* top,double* right, double* bottom) +{ + if (!link_page) return; + 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; +} +DLLEXPORT void STDCALL FPDFLink_CloseWebLinks(FPDF_PAGELINK link_page) +{ + if (!link_page) return; + IPDF_LinkExtract* pageLink=(IPDF_LinkExtract*)link_page; + delete pageLink; + pageLink =NULL; +} + -- cgit v1.2.3