1 // Copyright 2016 PDFium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 6 7 #ifndef CORE_FPDFAPI_RENDER_CPDF_TEXTRENDERER_H_ 8 #define CORE_FPDFAPI_RENDER_CPDF_TEXTRENDERER_H_ 9 10 #include <vector> 11 12 #include "core/fxcrt/fx_coordinates.h" 13 #include "core/fxcrt/fx_string.h" 14 #include "core/fxcrt/fx_system.h" 15 #include "core/fxge/fx_dib.h" 16 17 class CFX_RenderDevice; 18 class CFX_GraphStateData; 19 class CFX_PathData; 20 class CPDF_RenderOptions; 21 class CPDF_Font; 22 23 class CPDF_TextRenderer { 24 public: 25 static void DrawTextString(CFX_RenderDevice* pDevice, 26 FX_FLOAT origin_x, 27 FX_FLOAT origin_y, 28 CPDF_Font* pFont, 29 FX_FLOAT font_size, 30 const CFX_Matrix* matrix, 31 const CFX_ByteString& str, 32 FX_ARGB fill_argb, 33 const CFX_GraphStateData* pGraphState, 34 const CPDF_RenderOptions* pOptions); 35 36 static bool DrawTextPath(CFX_RenderDevice* pDevice, 37 const std::vector<uint32_t>& charCodes, 38 const std::vector<FX_FLOAT>& charPos, 39 CPDF_Font* pFont, 40 FX_FLOAT font_size, 41 const CFX_Matrix* pText2User, 42 const CFX_Matrix* pUser2Device, 43 const CFX_GraphStateData* pGraphState, 44 FX_ARGB fill_argb, 45 FX_ARGB stroke_argb, 46 CFX_PathData* pClippingPath, 47 int nFlag); 48 49 static bool DrawNormalText(CFX_RenderDevice* pDevice, 50 const std::vector<uint32_t>& charCodes, 51 const std::vector<FX_FLOAT>& charPos, 52 CPDF_Font* pFont, 53 FX_FLOAT font_size, 54 const CFX_Matrix* pText2Device, 55 FX_ARGB fill_argb, 56 const CPDF_RenderOptions* pOptions); 57 }; 58 59 #endif // CORE_FPDFAPI_RENDER_CPDF_TEXTRENDERER_H_ 60