bmf.h 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. /*====================================================================*
  2. - Copyright (C) 2001 Leptonica. All rights reserved.
  3. -
  4. - Redistribution and use in source and binary forms, with or without
  5. - modification, are permitted provided that the following conditions
  6. - are met:
  7. - 1. Redistributions of source code must retain the above copyright
  8. - notice, this list of conditions and the following disclaimer.
  9. - 2. Redistributions in binary form must reproduce the above
  10. - copyright notice, this list of conditions and the following
  11. - disclaimer in the documentation and/or other materials
  12. - provided with the distribution.
  13. -
  14. - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  15. - ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  16. - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
  17. - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ANY
  18. - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  19. - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  20. - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  21. - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
  22. - OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
  23. - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  24. - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  25. *====================================================================*/
  26. #ifndef LEPTONICA_BMF_H
  27. #define LEPTONICA_BMF_H
  28. /*!
  29. * \file bmf.h
  30. *
  31. * Simple data structure to hold bitmap fonts and related data
  32. */
  33. /*! Constants for deciding when text block is divided into paragraphs */
  34. enum {
  35. SPLIT_ON_LEADING_WHITE = 1, /*!< tab or space at beginning of line */
  36. SPLIT_ON_BLANK_LINE = 2, /*!< newline with optional white space */
  37. SPLIT_ON_BOTH = 3 /*!< leading white space or newline */
  38. };
  39. /*! Data structure to hold bitmap fonts and related data */
  40. struct L_Bmf
  41. {
  42. struct Pixa *pixa; /*!< pixa of bitmaps for 93 characters */
  43. l_int32 size; /*!< font size (in points at 300 ppi) */
  44. char *directory; /*!< directory containing font bitmaps */
  45. l_int32 baseline1; /*!< baseline offset for ascii 33 - 57 */
  46. l_int32 baseline2; /*!< baseline offset for ascii 58 - 91 */
  47. l_int32 baseline3; /*!< baseline offset for ascii 93 - 126 */
  48. l_int32 lineheight; /*!< max height of line of chars */
  49. l_int32 kernwidth; /*!< pixel dist between char bitmaps */
  50. l_int32 spacewidth; /*!< pixel dist between word bitmaps */
  51. l_int32 vertlinesep; /*!< extra vertical space between text lines */
  52. l_int32 *fonttab; /*!< table mapping ascii --> font index */
  53. l_int32 *baselinetab; /*!< table mapping ascii --> baseline offset */
  54. l_int32 *widthtab; /*!< table mapping ascii --> char width */
  55. };
  56. typedef struct L_Bmf L_BMF;
  57. #endif /* LEPTONICA_BMF_H */