bmf.h 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  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. * 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. struct L_Bmf
  40. {
  41. struct Pixa *pixa; /* pixa of bitmaps for 93 characters */
  42. l_int32 size; /* font size (in points at 300 ppi) */
  43. char *directory; /* directory containing font bitmaps */
  44. l_int32 baseline1; /* baseline offset for ascii 33 - 57 */
  45. l_int32 baseline2; /* baseline offset for ascii 58 - 91 */
  46. l_int32 baseline3; /* baseline offset for ascii 93 - 126 */
  47. l_int32 lineheight; /* max height of line of chars */
  48. l_int32 kernwidth; /* pixel dist between char bitmaps */
  49. l_int32 spacewidth; /* pixel dist between word bitmaps */
  50. l_int32 vertlinesep; /* extra vertical space between text lines */
  51. l_int32 *fonttab; /* table mapping ascii --> font index */
  52. l_int32 *baselinetab; /* table mapping ascii --> baseline offset */
  53. l_int32 *widthtab; /* table mapping ascii --> char width */
  54. };
  55. typedef struct L_Bmf L_BMF;
  56. #endif /* LEPTONICA_BMF_H */