2013-04-06 08:32:31 +00:00
|
|
|
/*
|
|
|
|
* Header file for HTMLState
|
|
|
|
* Copyright (C) 2013 Lu Wang <coolwanglu@gmail.com>
|
|
|
|
*/
|
|
|
|
#ifndef HTMLSTATE_H__
|
|
|
|
#define HTMLSTATE_H__
|
|
|
|
|
2013-04-06 08:45:01 +00:00
|
|
|
#include "Color.h"
|
2013-04-06 08:32:31 +00:00
|
|
|
|
|
|
|
namespace pdf2htmlEX {
|
|
|
|
|
|
|
|
struct FontInfo
|
|
|
|
{
|
|
|
|
long long id;
|
|
|
|
bool use_tounicode;
|
|
|
|
int em_size;
|
|
|
|
double space_width;
|
|
|
|
double ascent, descent;
|
|
|
|
bool is_type3;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct HTMLState
|
|
|
|
{
|
|
|
|
const FontInfo * font_info;
|
|
|
|
double font_size;
|
|
|
|
Color fill_color;
|
|
|
|
Color stroke_color;
|
|
|
|
double letter_space;
|
|
|
|
double word_space;
|
|
|
|
|
|
|
|
// relative to the previous state
|
|
|
|
double vertical_align;
|
|
|
|
|
|
|
|
double x,y;
|
|
|
|
double transform_matrix[4];
|
2013-04-06 09:10:18 +00:00
|
|
|
|
|
|
|
// the offset cause by a single ' ' char
|
|
|
|
double single_space_offset(void) const {
|
|
|
|
return word_space + letter_space + font_info->space_width * font_size;
|
|
|
|
}
|
|
|
|
// calculate em_size of this state
|
|
|
|
double em_size(void) const {
|
|
|
|
return font_size * (font_info->ascent - font_info->descent);
|
|
|
|
}
|
2013-04-06 08:32:31 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
} // namespace pdf2htmlEX
|
|
|
|
|
|
|
|
#endif //HTMLSTATE_H__
|