diff options
Diffstat (limited to 'core')
23 files changed, 114 insertions, 109 deletions
diff --git a/core/include/fpdfapi/fpdf_parser.h b/core/include/fpdfapi/fpdf_parser.h index ab48a95255..03ae4cf570 100644 --- a/core/include/fpdfapi/fpdf_parser.h +++ b/core/include/fpdfapi/fpdf_parser.h @@ -51,6 +51,9 @@ class CFX_PrivateData; // 'R' - otherwise. extern const char PDF_CharType[256]; +// Indexed by 8-bit char code, contains unicode code points. +extern const FX_WORD PDFDocEncoding[256]; + class CPDF_Document : public CFX_PrivateData, public CPDF_IndirectObjects { public: CPDF_Document(); @@ -921,4 +924,14 @@ enum PDF_DATAAVAIL_STATUS { PDF_DATAAVAIL_TRAILER_APPEND }; +FX_BOOL PDF_DataDecode(const uint8_t* src_buf, + FX_DWORD src_size, + const CPDF_Dictionary* pDict, + uint8_t*& dest_buf, + FX_DWORD& dest_size, + CFX_ByteString& ImageEncoding, + CPDF_Dictionary*& pImageParms, + FX_DWORD estimated_size, + FX_BOOL bImageAcc); + #endif // CORE_INCLUDE_FPDFAPI_FPDF_PARSER_H_ diff --git a/core/include/fpdfapi/fpdf_render.h b/core/include/fpdfapi/fpdf_render.h index b0302cdc11..58883a01f1 100644 --- a/core/include/fpdfapi/fpdf_render.h +++ b/core/include/fpdfapi/fpdf_render.h @@ -294,4 +294,6 @@ class CPDF_RenderConfig { int m_RenderStepLimit; }; +FX_BOOL IsAvailableMatrix(const CFX_AffineMatrix& matrix); + #endif // CORE_INCLUDE_FPDFAPI_FPDF_RENDER_H_ diff --git a/core/include/fxge/fx_font.h b/core/include/fxge/fx_font.h index 30de472a7e..2d19db614f 100644 --- a/core/include/fxge/fx_font.h +++ b/core/include/fxge/fx_font.h @@ -517,4 +517,6 @@ class IFX_GSUBTable { virtual ~IFX_GSUBTable() {} }; +CFX_ByteString GetNameFromTT(const uint8_t* name_table, FX_DWORD name); + #endif // CORE_INCLUDE_FXGE_FX_FONT_H_ diff --git a/core/src/fpdfapi/fpdf_cmaps/cmap_int.h b/core/src/fpdfapi/fpdf_cmaps/cmap_int.h index 41743a8f4a..7d51cee4cf 100644 --- a/core/src/fpdfapi/fpdf_cmaps/cmap_int.h +++ b/core/src/fpdfapi/fpdf_cmaps/cmap_int.h @@ -22,4 +22,11 @@ struct FXCMAP_CMap { int m_UseOffset; }; +void FPDFAPI_FindEmbeddedCMap(const char* name, + int charset, + int coding, + const FXCMAP_CMap*& pMap); +FX_WORD FPDFAPI_CIDFromCharCode(const FXCMAP_CMap* pMap, FX_DWORD charcode); +FX_DWORD FPDFAPI_CharCodeFromCID(const FXCMAP_CMap* pMap, FX_WORD cid); + #endif // CORE_SRC_FPDFAPI_FPDF_CMAPS_CMAP_INT_H_ diff --git a/core/src/fpdfapi/fpdf_edit/fpdf_edit_doc.cpp b/core/src/fpdfapi/fpdf_edit/fpdf_edit_doc.cpp index 1ff9876acc..d0be5ec1f4 100644 --- a/core/src/fpdfapi/fpdf_edit/fpdf_edit_doc.cpp +++ b/core/src/fpdfapi/fpdf_edit/fpdf_edit_doc.cpp @@ -219,15 +219,13 @@ CPDF_Font* CPDF_Document::AddWindowsFont(LOGFONTW* pLogFont, FXSYS_strcpy(lfa.lfFaceName, face.c_str()); return AddWindowsFont(&lfa, bVert, bTranslateName); } -extern CFX_ByteString _FPDF_GetNameFromTT(const uint8_t* name_table, - FX_DWORD name); CFX_ByteString _FPDF_GetPSNameFromTT(HDC hDC) { CFX_ByteString result; DWORD size = ::GetFontData(hDC, 'eman', 0, NULL, 0); if (size != GDI_ERROR) { LPBYTE buffer = FX_Alloc(BYTE, size); ::GetFontData(hDC, 'eman', 0, buffer, size); - result = _FPDF_GetNameFromTT(buffer, 6); + result = GetNameFromTT(buffer, 6); FX_Free(buffer); } return result; diff --git a/core/src/fpdfapi/fpdf_font/fpdf_font.cpp b/core/src/fpdfapi/fpdf_font/fpdf_font.cpp index 7f593c7be3..d64c77f03f 100644 --- a/core/src/fpdfapi/fpdf_font/fpdf_font.cpp +++ b/core/src/fpdfapi/fpdf_font/fpdf_font.cpp @@ -1049,7 +1049,6 @@ static FX_BOOL FT_UseType1Charmap(FXFT_Face face) { } return TRUE; } -extern FX_WCHAR FT_UnicodeFromCharCode(int encoding, FX_DWORD charcode); #if _FXM_PLATFORM_ == _FXM_PLATFORM_APPLE_ #include "../../fxge/apple/apple_int.h" #endif diff --git a/core/src/fpdfapi/fpdf_font/fpdf_font_charset.cpp b/core/src/fpdfapi/fpdf_font/fpdf_font_charset.cpp index a0b65af9c5..308dac9782 100644 --- a/core/src/fpdfapi/fpdf_font/fpdf_font_charset.cpp +++ b/core/src/fpdfapi/fpdf_font/fpdf_font_charset.cpp @@ -5,12 +5,10 @@ // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com #include "../../../include/fpdfapi/fpdf_page.h" +#include "../../../include/fpdfapi/fpdf_parser.h" #include "../../../include/fpdfapi/fpdf_resource.h" #include "../../../include/fxge/fx_freetype.h" -// TODO(tsepez): These belong in headers, too. -extern const FX_WORD PDFDocEncoding[256]; - static const struct _UnicodeAlt { FX_WORD m_Unicode; const FX_CHAR* m_Alter; @@ -1774,14 +1772,6 @@ const FX_WORD* PDF_UnicodesForPredefinedCharSet(int encoding) { FX_DWORD PDF_PredefinedCharCodeFromUnicode(int encoding, FX_WCHAR unicode) { return PDF_FindCode(PDF_UnicodesForPredefinedCharSet(encoding), unicode); } -#ifdef __cplusplus -extern "C" { -#endif -extern int FXFT_unicode_from_adobe_name(const char* name); -extern void FXFT_adobe_name_from_unicode(char* glyph_name, FX_WCHAR unicode); -#ifdef __cplusplus -} -#endif FX_WCHAR PDF_UnicodeFromAdobeName(const FX_CHAR* name) { return (FX_WCHAR)(FXFT_unicode_from_adobe_name(name) & 0x7FFFFFFF); } diff --git a/core/src/fpdfapi/fpdf_font/fpdf_font_cid.cpp b/core/src/fpdfapi/fpdf_font/fpdf_font_cid.cpp index 2fc1255989..c934124a8a 100644 --- a/core/src/fpdfapi/fpdf_font/fpdf_font_cid.cpp +++ b/core/src/fpdfapi/fpdf_font/fpdf_font_cid.cpp @@ -430,12 +430,7 @@ const CPDF_PredefinedCMap g_PredefinedCMaps[] = { {"UniKS-UCS2", CIDSET_KOREA1, CIDCODING_UCS2, CPDF_CMap::TwoBytes}, {"UniKS-UTF16", CIDSET_KOREA1, CIDCODING_UTF16, CPDF_CMap::TwoBytes}, {NULL, 0, 0}}; -extern void FPDFAPI_FindEmbeddedCMap(const char* name, - int charset, - int coding, - const FXCMAP_CMap*& pMap); -extern FX_WORD FPDFAPI_CIDFromCharCode(const FXCMAP_CMap* pMap, - FX_DWORD charcode); + FX_BOOL CPDF_CMap::LoadPredefined(CPDF_CMapManager* pMgr, const FX_CHAR* pName, FX_BOOL bPromptCJK) { @@ -812,7 +807,6 @@ FX_WORD CPDF_CIDFont::CIDFromCharCode(FX_DWORD charcode) const { FX_BOOL CPDF_CIDFont::IsVertWriting() const { return m_pCMap ? m_pCMap->IsVertWriting() : FALSE; } -extern FX_DWORD FPDFAPI_CharCodeFromCID(const FXCMAP_CMap* pMap, FX_WORD cid); static FX_DWORD _EmbeddedCharcodeFromUnicode(const FXCMAP_CMap* pEmbedMap, int charset, FX_WCHAR unicode) { diff --git a/core/src/fpdfapi/fpdf_parser/fpdf_parser_decode.cpp b/core/src/fpdfapi/fpdf_parser/fpdf_parser_decode.cpp index 85ba130b77..402a19ed4a 100644 --- a/core/src/fpdfapi/fpdf_parser/fpdf_parser_decode.cpp +++ b/core/src/fpdfapi/fpdf_parser/fpdf_parser_decode.cpp @@ -4,11 +4,44 @@ // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com +#include <limits.h> #include "../../../include/fpdfapi/fpdf_parser.h" #include "../../../include/fpdfapi/fpdf_module.h" #include "../../../include/fxcodec/fx_codec.h" -#include <limits.h> + #define _STREAM_MAX_SIZE_ 20 * 1024 * 1024 + +const FX_WORD PDFDocEncoding[256] = { + 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, + 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, + 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x02d8, 0x02c7, 0x02c6, + 0x02d9, 0x02dd, 0x02db, 0x02da, 0x02dc, 0x0020, 0x0021, 0x0022, 0x0023, + 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, + 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, + 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, + 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, + 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, + 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, + 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, + 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, + 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, + 0x007e, 0x0000, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x0192, + 0x2044, 0x2039, 0x203a, 0x2212, 0x2030, 0x201e, 0x201c, 0x201d, 0x2018, + 0x2019, 0x201a, 0x2122, 0xfb01, 0xfb02, 0x0141, 0x0152, 0x0160, 0x0178, + 0x017d, 0x0131, 0x0142, 0x0153, 0x0161, 0x017e, 0x0000, 0x20ac, 0x00a1, + 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, 0x00a8, 0x00a9, 0x00aa, + 0x00ab, 0x00ac, 0x0000, 0x00ae, 0x00af, 0x00b0, 0x00b1, 0x00b2, 0x00b3, + 0x00b4, 0x00b5, 0x00b6, 0x00b7, 0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, + 0x00bd, 0x00be, 0x00bf, 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, + 0x00c6, 0x00c7, 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, + 0x00cf, 0x00d0, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7, + 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x00de, 0x00df, 0x00e0, + 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, 0x00e8, 0x00e9, + 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, 0x00f0, 0x00f1, 0x00f2, + 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7, 0x00f8, 0x00f9, 0x00fa, 0x00fb, + 0x00fc, 0x00fd, 0x00fe, 0x00ff}; + FX_DWORD _A85Decode(const uint8_t* src_buf, FX_DWORD src_size, uint8_t*& dest_buf, @@ -394,36 +427,6 @@ FX_BOOL PDF_DataDecode(const uint8_t* src_buf, dest_size = last_size; return TRUE; } -extern const FX_WORD PDFDocEncoding[256] = { - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, - 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, - 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x02d8, 0x02c7, 0x02c6, - 0x02d9, 0x02dd, 0x02db, 0x02da, 0x02dc, 0x0020, 0x0021, 0x0022, 0x0023, - 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, - 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, - 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, - 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, - 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, - 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, - 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, - 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, - 0x007e, 0x0000, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x0192, - 0x2044, 0x2039, 0x203a, 0x2212, 0x2030, 0x201e, 0x201c, 0x201d, 0x2018, - 0x2019, 0x201a, 0x2122, 0xfb01, 0xfb02, 0x0141, 0x0152, 0x0160, 0x0178, - 0x017d, 0x0131, 0x0142, 0x0153, 0x0161, 0x017e, 0x0000, 0x20ac, 0x00a1, - 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, 0x00a8, 0x00a9, 0x00aa, - 0x00ab, 0x00ac, 0x0000, 0x00ae, 0x00af, 0x00b0, 0x00b1, 0x00b2, 0x00b3, - 0x00b4, 0x00b5, 0x00b6, 0x00b7, 0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, - 0x00bd, 0x00be, 0x00bf, 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, - 0x00c6, 0x00c7, 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, - 0x00cf, 0x00d0, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7, - 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x00de, 0x00df, 0x00e0, - 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, 0x00e8, 0x00e9, - 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, 0x00f0, 0x00f1, 0x00f2, - 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7, 0x00f8, 0x00f9, 0x00fa, 0x00fb, - 0x00fc, 0x00fd, 0x00fe, 0x00ff}; CFX_WideString PDF_DecodeText(const uint8_t* src_data, FX_DWORD src_len, CFX_CharMap* pCharMap) { diff --git a/core/src/fpdfapi/fpdf_parser/fpdf_parser_document.cpp b/core/src/fpdfapi/fpdf_parser/fpdf_parser_document.cpp index 0d7bdd8379..02ff1f3aca 100644 --- a/core/src/fpdfapi/fpdf_parser/fpdf_parser_document.cpp +++ b/core/src/fpdfapi/fpdf_parser/fpdf_parser_document.cpp @@ -86,7 +86,6 @@ void CPDF_Document::LoadAsynDoc(CPDF_Dictionary* pLinearized) { void CPDF_Document::LoadPages() { m_PageList.SetSize(_GetPageCount()); } -extern void FPDF_TTFaceMapper_ReleaseDoc(CPDF_Document*); CPDF_Document::~CPDF_Document() { if (m_pDocPage) { CPDF_ModuleMgr::Get()->GetPageModule()->ReleaseDoc(this); diff --git a/core/src/fpdfapi/fpdf_parser/fpdf_parser_objects.cpp b/core/src/fpdfapi/fpdf_parser/fpdf_parser_objects.cpp index eed62013f5..23742bc3de 100644 --- a/core/src/fpdfapi/fpdf_parser/fpdf_parser_objects.cpp +++ b/core/src/fpdfapi/fpdf_parser/fpdf_parser_objects.cpp @@ -1014,15 +1014,6 @@ CPDF_Stream* CPDF_Stream::Clone(FX_BOOL bDirect, pObj->InitStream((IFX_FileRead*)pFS, pCloneDict); return pObj; } -extern FX_BOOL PDF_DataDecode(const uint8_t* src_buf, - FX_DWORD src_size, - const CPDF_Dictionary* pDict, - uint8_t*& dest_buf, - FX_DWORD& dest_size, - CFX_ByteString& ImageEncoding, - CPDF_Dictionary*& pImageParms, - FX_DWORD estimated_size, - FX_BOOL bImageAcc); CPDF_StreamAcc::CPDF_StreamAcc() { m_bNewBuf = FALSE; m_pData = NULL; diff --git a/core/src/fpdfapi/fpdf_render/fpdf_render_text.cpp b/core/src/fpdfapi/fpdf_render/fpdf_render_text.cpp index 50388332f8..eff7b06e67 100644 --- a/core/src/fpdfapi/fpdf_render/fpdf_render_text.cpp +++ b/core/src/fpdfapi/fpdf_render/fpdf_render_text.cpp @@ -9,7 +9,7 @@ #include "../../../include/fpdfapi/fpdf_pageobj.h" #include "../fpdf_page/pageint.h" #include "render_int.h" -extern FX_BOOL IsAvailableMatrix(const CFX_AffineMatrix& matrix); + CPDF_Type3Cache::~CPDF_Type3Cache() { for (const auto& pair : m_SizeMap) { delete pair.second; diff --git a/core/src/fpdfdoc/doc_ap.cpp b/core/src/fpdfdoc/doc_ap.cpp index f9bb3a7641..2367d0e7e9 100644 --- a/core/src/fpdfdoc/doc_ap.cpp +++ b/core/src/fpdfdoc/doc_ap.cpp @@ -4,10 +4,12 @@ // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com +#include "../../include/fpdfdoc/fpdf_ap.h" #include "../../include/fpdfdoc/fpdf_doc.h" #include "../../include/fpdfdoc/fpdf_vt.h" +#include "doc_utils.h" #include "pdf_vt.h" -#include "../../include/fpdfdoc/fpdf_ap.h" + FX_BOOL FPDF_GenerateAP(CPDF_Document* pDoc, CPDF_Dictionary* pAnnotDict) { if (!pAnnotDict || pAnnotDict->GetConstString("Subtype") != FX_BSTRC("Widget")) { @@ -76,9 +78,6 @@ CPVT_FontMap::CPVT_FontMap(CPDF_Document* pDoc, m_pSysFont(NULL), m_sSysFontAlias() {} CPVT_FontMap::~CPVT_FontMap() {} -extern CPDF_Font* AddNativeInterFormFont(CPDF_Dictionary*& pFormDict, - CPDF_Document* pDocument, - CFX_ByteString& csNameTag); void CPVT_FontMap::GetAnnotSysPDFFont(CPDF_Document* pDoc, CPDF_Dictionary* pResDict, CPDF_Font*& pSysFont, diff --git a/core/src/fpdftext/fpdf_text.cpp b/core/src/fpdftext/fpdf_text.cpp index f9e1e02cf1..0659024d90 100644 --- a/core/src/fpdftext/fpdf_text.cpp +++ b/core/src/fpdftext/fpdf_text.cpp @@ -791,10 +791,6 @@ void PDF_GetPageText(CFX_ByteStringArray& lines, lines.Add(str); } } -extern void _PDF_GetTextStream_Unicode(CFX_WideTextBuf& buffer, - CPDF_PageObjects* pPage, - FX_BOOL bUseLF, - CFX_PtrArray* pObjArray); void PDF_GetTextStream_Unicode(CFX_WideTextBuf& buffer, CPDF_Document* pDoc, CPDF_Dictionary* pPage, @@ -806,5 +802,5 @@ void PDF_GetTextStream_Unicode(CFX_WideTextBuf& buffer, options.m_bTextOnly = TRUE; options.m_bSeparateForm = FALSE; page.ParseContent(&options); - _PDF_GetTextStream_Unicode(buffer, &page, TRUE, NULL); + GetTextStream_Unicode(buffer, &page, TRUE, NULL); } diff --git a/core/src/fpdftext/fpdf_text_search.cpp b/core/src/fpdftext/fpdf_text_search.cpp index 95839b54fb..6640018de0 100644 --- a/core/src/fpdftext/fpdf_text_search.cpp +++ b/core/src/fpdftext/fpdf_text_search.cpp @@ -6,6 +6,8 @@ #include "../../include/fpdfapi/fpdf_pageobj.h" #include "../../include/fpdfapi/fpdf_page.h" +#include "text_int.h" + class CPDF_TextStream { public: CPDF_TextStream(CFX_WideTextBuf& buffer, @@ -293,10 +295,10 @@ FX_BOOL CPDF_TextStream::ProcessObject(const CPDF_TextObject* pObj, } return FALSE; } -void _PDF_GetTextStream_Unicode(CFX_WideTextBuf& buffer, - CPDF_PageObjects* pPage, - FX_BOOL bUseLF, - CFX_PtrArray* pObjArray) { +void GetTextStream_Unicode(CFX_WideTextBuf& buffer, + CPDF_PageObjects* pPage, + FX_BOOL bUseLF, + CFX_PtrArray* pObjArray) { CPDF_TextStream textstream(buffer, bUseLF, pObjArray); FX_POSITION pos = pPage->GetFirstObjectPosition(); while (pos) { diff --git a/core/src/fpdftext/text_int.h b/core/src/fpdftext/text_int.h index 24b89f1681..7d69492a21 100644 --- a/core/src/fpdftext/text_int.h +++ b/core/src/fpdftext/text_int.h @@ -7,9 +7,16 @@ #ifndef CORE_SRC_FPDFTEXT_TEXT_INT_H_ #define CORE_SRC_FPDFTEXT_TEXT_INT_H_ +#include "../../include/fpdftext/fpdf_text.h" +#include "../../include/fxcrt/fx_arb.h" +#include "../../include/fxcrt/fx_basic.h" + +class CFX_BidiChar; +class CPDF_DocProgressiveSearch; +class CPDF_FormObject; class CPDF_LinkExtract; class CPDF_TextPageFind; -class CPDF_DocProgressiveSearch; + #define FPDFTEXT_CHAR_ERROR -1 #define FPDFTEXT_CHAR_NORMAL 0 #define FPDFTEXT_CHAR_GENERATED 1 @@ -19,6 +26,7 @@ class CPDF_DocProgressiveSearch; #define FPDFTEXT_MC_PASS 0 #define FPDFTEXT_MC_DONE 1 #define FPDFTEXT_MC_DELAY 2 + typedef struct _PAGECHAR_INFO { int m_CharCode; FX_WCHAR m_Unicode; @@ -231,5 +239,9 @@ class CPDF_LinkExtract : public IPDF_LinkExtract { FX_STRSIZE FX_Unicode_GetNormalization(FX_WCHAR wch, FX_WCHAR* pDst); void NormalizeString(CFX_WideString& str); void NormalizeCompositeChar(FX_WCHAR wChar, CFX_WideString& sDest); +void GetTextStream_Unicode(CFX_WideTextBuf& buffer, + CPDF_PageObjects* pPage, + FX_BOOL bUseLF, + CFX_PtrArray* pObjArray); #endif // CORE_SRC_FPDFTEXT_TEXT_INT_H_ diff --git a/core/src/fxge/dib/dib_int.h b/core/src/fxge/dib/dib_int.h index d40e3a4f95..69f28234eb 100644 --- a/core/src/fxge/dib/dib_int.h +++ b/core/src/fxge/dib/dib_int.h @@ -7,6 +7,8 @@ #ifndef CORE_SRC_FXGE_DIB_DIB_INT_H_ #define CORE_SRC_FXGE_DIB_DIB_INT_H_ +extern const int SDP_Table[513]; + class CPDF_FixedMatrix { public: CPDF_FixedMatrix(const CFX_AffineMatrix& src, int bits) { @@ -89,4 +91,10 @@ class CStretchEngine { int m_State; }; +FX_RECT FXDIB_SwapClipBox(FX_RECT& clip, + int width, + int height, + FX_BOOL bFlipX, + FX_BOOL bFlipY); + #endif // CORE_SRC_FXGE_DIB_DIB_INT_H_ diff --git a/core/src/fxge/dib/fx_dib_engine.cpp b/core/src/fxge/dib/fx_dib_engine.cpp index b2da83a802..33c0333788 100644 --- a/core/src/fxge/dib/fx_dib_engine.cpp +++ b/core/src/fxge/dib/fx_dib_engine.cpp @@ -4,11 +4,12 @@ // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com +#include <limits.h> + #include "../../../include/fxge/fx_dib.h" #include "../../../include/fxge/fx_ge.h" #include "dib_int.h" -#include <limits.h> -extern int SDP_Table[513]; + void CWeightTable::Calc(int dest_len, int dest_min, int dest_max, diff --git a/core/src/fxge/dib/fx_dib_main.cpp b/core/src/fxge/dib/fx_dib_main.cpp index f3e3a23236..d89fec74c4 100644 --- a/core/src/fxge/dib/fx_dib_main.cpp +++ b/core/src/fxge/dib/fx_dib_main.cpp @@ -1578,11 +1578,6 @@ CFX_ImageRenderer::CFX_ImageRenderer() { CFX_ImageRenderer::~CFX_ImageRenderer() { delete m_pTransformer; } -extern FX_RECT _FXDIB_SwapClipBox(FX_RECT& clip, - int width, - int height, - FX_BOOL bFlipX, - FX_BOOL bFlipY); FX_BOOL CFX_ImageRenderer::Start(CFX_DIBitmap* pDevice, const CFX_ClipRgn* pClipRgn, const CFX_DIBSource* pSource, @@ -1623,8 +1618,8 @@ FX_BOOL CFX_ImageRenderer::Start(CFX_DIBitmap* pDevice, int dest_height = image_rect.Height(); FX_RECT bitmap_clip = m_ClipBox; bitmap_clip.Offset(-image_rect.left, -image_rect.top); - bitmap_clip = _FXDIB_SwapClipBox(bitmap_clip, dest_width, dest_height, - m_Matrix.c > 0, m_Matrix.b < 0); + bitmap_clip = FXDIB_SwapClipBox(bitmap_clip, dest_width, dest_height, + m_Matrix.c > 0, m_Matrix.b < 0); m_Composer.Compose(pDevice, pClipRgn, bitmap_alpha, mask_color, m_ClipBox, TRUE, m_Matrix.c > 0, m_Matrix.b < 0, m_bRgbByteOrder, alpha_flag, pIccTransform, m_BlendType); diff --git a/core/src/fxge/dib/fx_dib_transform.cpp b/core/src/fxge/dib/fx_dib_transform.cpp index cbf3bdc82c..7a33f1d9f8 100644 --- a/core/src/fxge/dib/fx_dib_transform.cpp +++ b/core/src/fxge/dib/fx_dib_transform.cpp @@ -6,7 +6,8 @@ #include "../../../include/fxge/fx_dib.h" #include "dib_int.h" -int SDP_Table[513] = { + +const int SDP_Table[513] = { 256, 256, 256, 256, 256, 256, 256, 256, 256, 255, 255, 255, 255, 255, 255, 254, 254, 254, 254, 253, 253, 253, 252, 252, 252, 251, 251, 251, 250, 250, 249, 249, 249, 248, 248, 247, 247, 246, 246, 245, 244, 244, 243, 243, 242, @@ -168,11 +169,11 @@ CFX_DIBitmap* CFX_DIBSource::SwapXY(FX_BOOL bXFlip, return pTransBitmap; } #define FIX16_005 0.05f -FX_RECT _FXDIB_SwapClipBox(FX_RECT& clip, - int width, - int height, - FX_BOOL bFlipX, - FX_BOOL bFlipY) { +FX_RECT FXDIB_SwapClipBox(FX_RECT& clip, + int width, + int height, + FX_BOOL bFlipX, + FX_BOOL bFlipY) { FX_RECT rect; if (bFlipY) { rect.left = height - clip.top; @@ -256,8 +257,8 @@ FX_BOOL CFX_ImageTransformer::Start(const CFX_DIBSource* pSrc, int dest_width = result_rect.Width(); int dest_height = result_rect.Height(); result_clip.Offset(-result_rect.left, -result_rect.top); - result_clip = _FXDIB_SwapClipBox(result_clip, dest_width, dest_height, - pDestMatrix->c > 0, pDestMatrix->b < 0); + result_clip = FXDIB_SwapClipBox(result_clip, dest_width, dest_height, + pDestMatrix->c > 0, pDestMatrix->b < 0); m_Stretcher.Start(&m_Storer, pSrc, dest_height, dest_width, result_clip, flags); m_Status = 1; diff --git a/core/src/fxge/ge/fx_ge_font.cpp b/core/src/fxge/ge/fx_ge_font.cpp index c3e887146f..c7c4ed2d3d 100644 --- a/core/src/fxge/ge/fx_ge_font.cpp +++ b/core/src/fxge/ge/fx_ge_font.cpp @@ -9,6 +9,7 @@ #include "text_int.h" #define EM_ADJUST(em, a) (em == 0 ? (a) : (a)*1000 / em) + extern void _FPDFAPI_GetInternalFontData(int id1, const uint8_t*& data, FX_DWORD& size); diff --git a/core/src/fxge/ge/fx_ge_fontmap.cpp b/core/src/fxge/ge/fx_ge_fontmap.cpp index cc4dc07106..af6c43fe9e 100644 --- a/core/src/fxge/ge/fx_ge_fontmap.cpp +++ b/core/src/fxge/ge/fx_ge_fontmap.cpp @@ -423,11 +423,6 @@ const FoxitFonts g_FoxitFonts[14] = { {g_FoxitSymbolFontData, 16729}, {g_FoxitDingbatsFontData, 29513}, }; -void _FPDFAPI_GetInternalFontData(int id, - const uint8_t*& data, - FX_DWORD& size) { - CFX_GEModule::Get()->GetFontMgr()->GetStandardFont(data, size, id); -} FX_BOOL CFX_FontMgr::GetStandardFont(const uint8_t*& pFontData, FX_DWORD& size, int index) { @@ -495,8 +490,7 @@ static CFX_ByteString _TT_NormalizeName(const FX_CHAR* family) { norm.MakeLower(); return norm; } -CFX_ByteString _FPDF_GetNameFromTT(const uint8_t* name_table, - FX_DWORD name_id) { +CFX_ByteString GetNameFromTT(const uint8_t* name_table, FX_DWORD name_id) { const uint8_t* ptr = name_table + 2; int name_count = GET_TT_SHORT(ptr); int string_offset = GET_TT_SHORT(ptr + 2); @@ -564,7 +558,7 @@ CFX_ByteString CFX_FontMapper::GetPSNameFromTT(void* hFont) { if (size) { uint8_t* buffer = FX_Alloc(uint8_t, size); m_pFontInfo->GetFontData(hFont, 0x6e616d65, buffer, size); - result = _FPDF_GetNameFromTT(buffer, 6); + result = GetNameFromTT(buffer, 6); FX_Free(buffer); } return result; @@ -1348,10 +1342,6 @@ CFontFileFaceInfo::~CFontFileFaceInfo() { } m_Face = NULL; } -extern FX_BOOL _LoadFile(FXFT_Library library, - FXFT_Face* Face, - IFX_FileRead* pFile, - FXFT_Stream* stream); #if _FX_OS_ == _FX_ANDROID_ IFX_SystemFontInfo* IFX_SystemFontInfo::CreateDefault() { return NULL; @@ -1465,8 +1455,8 @@ void CFX_FolderFontInfo::ReportFace(CFX_ByteString& path, } CFX_ByteString names = _FPDF_LoadTableFromTT(pFile, tables, nTables, 0x6e616d65); - CFX_ByteString facename = _FPDF_GetNameFromTT(names, 1); - CFX_ByteString style = _FPDF_GetNameFromTT(names, 2); + CFX_ByteString facename = GetNameFromTT(names, 1); + CFX_ByteString style = GetNameFromTT(names, 2); if (style != "Regular") { facename += " " + style; } diff --git a/core/src/fxge/ge/text_int.h b/core/src/fxge/ge/text_int.h index b0193c4f2e..2a81f553c4 100644 --- a/core/src/fxge/ge/text_int.h +++ b/core/src/fxge/ge/text_int.h @@ -7,6 +7,8 @@ #ifndef CORE_SRC_FXGE_GE_TEXT_INT_H_ #define CORE_SRC_FXGE_GE_TEXT_INT_H_ +#include "../../../include/fxge/fx_freetype.h" + struct _CFX_UniqueKeyGen { void Generate(int count, ...); FX_CHAR m_Key[128]; |