2
Copyright (c) 1993-2008, Cognitive Technologies
5
ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ ļæ½ ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½,
6
ļæ½ļæ½ļæ½ ļæ½ ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½, ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½, ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½:
8
* ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½
9
ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½, ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½
10
ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½.
11
* ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½/ļæ½ļæ½ļæ½ ļæ½
12
ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½, ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½, ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½
13
ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½, ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½
14
ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½.
15
* ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ Cognitive Technologies, ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½
16
ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½/ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½
17
ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½, ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½, ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½
18
ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½.
20
ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ ļæ½/ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ "ļæ½ļæ½ļæ½
21
ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½" ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½-ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½, ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½,
22
ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½, ļæ½ļæ½ ļæ½ļæ½
23
ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½. ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ ļæ½ ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½, ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½
24
ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½/ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½, ļæ½ļæ½ ļæ½ ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½
25
ļæ½ļæ½ŃØļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½, ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½, ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½, ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½
26
ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½, ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½
27
ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ (ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½, ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½,
28
ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½, ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½/ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½, ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½-ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½
29
ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ ļæ½/ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½,
30
ļæ½ļæ½ ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½), ļæ½ļæ½ ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½, ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½
31
ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½.
33
Redistribution and use in source and binary forms, with or without modification,
34
are permitted provided that the following conditions are met:
36
* Redistributions of source code must retain the above copyright notice,
37
this list of conditions and the following disclaimer.
38
* Redistributions in binary form must reproduce the above copyright notice,
39
this list of conditions and the following disclaimer in the documentation
40
and/or other materials provided with the distribution.
41
* Neither the name of the Cognitive Technologies nor the names of its
42
contributors may be used to endorse or promote products derived from this
43
software without specific prior written permission.
45
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
46
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
47
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
48
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
49
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
50
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
51
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
52
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
53
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
54
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
57
// ============================================================================
58
// Written by Shahverdiev Alik
59
// This file cration date: 12.08.99
63
// ============================================================================
65
#ifndef __CreateRtf_h__
66
#define __CreateRtf_h__
68
#include "rtfedwrite.h"
70
#include "compat_defs.h"
72
#define TIRE 0x97 //'-'
74
//Fragment output types
77
#define FOT_SINGLE_IN_COLUMN 2
85
//HorizontalColumn types
86
#define HC_SingleTerminal 0
87
#define HC_AllTerminal 1
88
#define HC_FrameAndColumn 2
90
#define HC_ONLY_PICTURE_TABLE 4
92
#define MaxFontSize 72
93
#define DefFontSize 24
94
#define MAX_BUFFER_SIZE 2048
95
#define ChangedKeglSize 6
98
#define TG_EDW_SERIF 1 //ļæ½ļæ½ļæ½ļæ½ļæ½.
99
#define TG_EDW_GELV 2 //ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½.
100
#define TG_EDW_BOLD 4
101
#define TG_EDW_ITALIC 16
102
#define TG_EDW_UNDERLINE 64
103
#define TG_EDW_NARROW 128 // user defined
105
#define NOBOLD 0x0004
106
#define NOCURSIV 0x0008
107
#define NOSIZE 0x0020
110
#define USE_NONE 0x0040 // no formatting
111
#define USE_FRAME_AND_COLUMN 0x0001 // use columns & frames
112
#define USE_FRAME 0x0002 // use only frames
115
#define DefaultWidthPage 11906
116
#define DefaultHeightPage 16838
118
#define DefMargL 1800 // Left margin in twips (the default is 1800).
119
#define DefMargR 1800 // Right margin in twips (the default is 1800).
120
#define DefMargT 1440 // Top margin in twips (the default is 1440).
121
#define DefMargB 1440 // Bottom margin in twips (the default is 1440).
123
#define RTF_TP_LEFT_ALLIGN 0 //- ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½
124
#define RTF_TP_RIGHT_ALLIGN 1 //- ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½
125
#define RTF_TP_LEFT_AND_RIGHT_ALLIGN 2 //- ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½
126
#define RTF_TP_CENTER 3 //- ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½
127
#define RTF_TP_ONE 4 //- ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½, ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ ļæ½ļæ½ļæ½ļæ½
128
#define RTF_TP_TYPE_LINE 5 //- ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½
132
class CRtfHorizontalColumn;
133
class CRtfVerticalColumn;
139
struct RtfPageElementCount
142
WORD RtfTextFragments;
143
WORD RtfFrameTextFragments;
144
WORD RtfPictureFragments;
145
WORD RtfTableFragments;
151
typedef struct tagKEGL {
157
#define FONT struct h_font
160
Int16 Bold,Italic,Underline;
162
typedef struct hfont_cod {const char *name,*family;} FONT_COD;
164
typedef struct RTFLETTER
166
unsigned char alternative; // ASCII code. >= ' '.
167
unsigned char probability;
170
/////////////////////////////////////////////////////////////////////////////
172
class CRtfPage //: public CObject
178
void CRtfPageDelFragments(void);
179
CRtfFragment* GetNextFragment();
180
BOOL ReadInternalFile(FILE *FileNameIn);
181
BOOL OpenOutputFile(const char* FileNameOut);
182
void CloseOutputFile(void);
184
BOOL FindPageTree(FILE *FileNameIn, const char* FileNameOut);
185
void ReCalcPageWidthAndHeight();
186
BOOL WriteHeaderRtf(void);
187
void CorrectKegl(void);
188
void ChangeKegl(void);
189
void AddNewKegl( Int16 OldKegl, Int16 NewKegl );
190
Int16 GetNewKegl( Int16 OldKegl );
191
Int16 GetMinKegl( Int16 OldKegl );
192
void AddPictures(void);
193
void AddTables(void);
195
void SortUserNumber(void);
196
BOOL Write(const char* FileNameOut );
197
BOOL Write_USE_NONE( void );
198
BOOL Write_USE_FRAME( void );
199
BOOL Write_USE_FRAME_AND_COLUMN( void );
200
Int16 GetFlagAndNumberFragment( BYTE* FragmentType, Int16* CurrentSectorNumber );
201
void WriteSectorsHeader(Int16 i);
202
void ToPlacePicturesAndTables(void);
203
void Rtf_CED_CreatePage(void);
204
void Rtf_CED_WriteFormattedEd( const char* FileNameOut, Handle* );
205
WORD GetFreeSpaceBetweenSectors(CRtfSector* pRtfSector, CRtfSector* pRtfNextSector);
206
void SetPaperSize(Int32 LeftPos,Int32 RightPos,Int32 TopPos,Int32 BottomPos,Int32* PaperW,Int32* PaperH,
207
Int32* MargL,Int32* MargR,Int32* MargT,Int32* MargB);
209
/*CObArray*/std::vector<CRtfFragment*> m_arFragments;
210
/*CObArray*/std::vector<CRtfSector*> m_arSectors;
211
/*CArray <KEGL,KEGL>*/std::vector<KEGL> arKegls;
213
RtfPageElementCount Count;
232
int m_nCurSectorNumber;
233
int m_nPrevSectorNumber;
237
/////////////////////////////////////////////////////////////////////////////
239
class CRtfFragment//:public CObject
245
CRtfPage* pRtfParent;
246
CRtfString* GetFirstString();
247
CRtfString* GetNextString();
248
BOOL Write(RtfSectorInfo* SectorInfo);
249
void InitFragment(RtfSectorInfo* SectorInfo);
250
void SetFragmentAlignment(RtfSectorInfo* SectorInfo);
251
void new_paragraph( BOOL OutPutType );
252
BOOL FWriteText(Int16 NumberCurrentFragment,RtfSectorInfo* SectorInfo, BOOL OutPutType);
253
BOOL FWriteTable(Int16 NumberCurrentFragment,RtfSectorInfo* SectorInfo, BOOL OutPutType);
254
BOOL FWritePicture(Int16 NumberCurrentFragment,RtfSectorInfo* SectorInfo, BOOL OutPutType);
256
BOOL ProcessingUseNoneMode(void);
257
void Init(RtfSectorInfo* SectorInfo);
258
void ReInit(RtfSectorInfo* SectorInfo, int beg, int end);
259
BOOL ProcessingOverLayedFragment(RtfSectorInfo* SectorInfo);
260
BOOL DeterminationOfCentreJustification(int beg, int end);
261
BOOL DeterminationOfRightJustification(int beg, int end);
262
BOOL DeterminationOfListType(int beg, int end);
265
BOOL DeterminationOfMixedFragment(RtfSectorInfo* SectorInfo);
266
void GetNextFragmentBegEnd(Int32* beg, Int32* end, BOOL* Flag);
268
BOOL DeterminationOfLeftRightJustification(int beg, int end);
269
BOOL CheckLeftRightJustification(int beg, int end);
270
void SetFlagBeginParagraphForLeftRightJustification(int beg, int end);
271
BOOL CheckStringForLeftRightJustification(int ns);
273
BOOL DeterminationOfLeftJustification(int beg, int end, BOOL direct);
274
BOOL CheckLeftJustification(int beg, int end);
275
void SetFlagBeginParagraphForLeftJustification(int beg, int end);
276
BOOL CheckStringForLeftJustification(int ns);
278
void CheckOnceAgainImportancesFlagBeginParagraph(void);
279
void DefineLineTransfer(void);
280
int GetCountLine(int beg);
281
void SetLineTransfer(int beg, int end);
282
void SetFirstLeftAndRightIndentOfParagraph(void);
283
void CorrectIndents(int beg, int end);
284
void SetParagraphAlignment(int beg, int end, int AlignType);
285
void CalculationLengthAndCount(CRtfString* pRtfString, Int32* CountChars, Int32* LengthChars);
286
void GetCountEqual(int beg, int end, WORD* Count, int AlignType);
287
BOOL GetFlagCarry(int beg, int end);
288
BOOL GetFlagLeft(int beg, int end);
289
BOOL GetFlagStrongLeft(int beg, int end);
290
BOOL GetFlagRight(int beg, int end);
291
BOOL GetFlagBigSpace(int beg, int end);
292
BOOL CheckNumber(BYTE FirstChar);
294
void PrintTheResult(const char*);
296
/*CObArray*/std::vector<CRtfString*> m_arStrings;
298
WORD m_wStringsCount;
304
DWORD m_wInternalNumber;
306
DWORD m_wUserNumberForFormattedMode;
307
LONG m_LeftOffsetFragmentFromVerticalColumn;
308
LONG m_RightOffsetFragmentFromVerticalColumn;
309
WORD m_wOffsetFromPrevTextFragment;
314
BOOL m_bFlagObjectInColumn;
317
BOOL m_bflag_new_column;
318
BOOL m_bflag_new_parag;
319
BOOL m_bflag_new_str;
320
BOOL m_bflag_new_line;
322
BOOL m_bflag_LineTransfer;
323
WORD m_wprev_font_name;
324
WORD m_wprev_Underline;
328
WORD m_wprev_font_size;
331
WORD m_CountLeftEqual;
332
WORD m_CountRightEqual;
333
WORD m_CountLeftRightEqual;
334
WORD m_CountCentreEqual;
338
Int16 m_l_fragmentLocal;
339
Int16 m_r_fragmentLocal;
341
Int16 m_LengthStringInTwips;
342
Int16 m_WidthVerticalColumn;
361
BYTE m_FlagStrongLeft;
367
/////////////////////////////////////////////////////////////////////////////
369
class CRtfSector//:public CObject
378
void WriteTerminalColumns(void);
379
void WriteNonTerminalColumns(void);
380
void WriteTerminalColumnsTablesAndPictures(void);
381
void CalcSector(void);
382
Int32 GetCountAndRightBoundVTerminalColumns(void);
383
void ToPlacePicturesAndTables(CRtfFragment* Frament);
384
void FillingSectorInfo(void);
386
/*CObArray*/std::vector<CRtfHorizontalColumn*> m_arHorizontalColumns;
387
vectorWord/*CWordArray*/ m_arHTerminalColumnsIndex;
388
vectorWord/*CWordArray*/ m_arRightBoundTerminalColumns;
389
vectorWord/*CWordArray*/ m_arWidthTerminalColumns;
390
RtfSectorInfo SectorInfo;
392
WORD m_wHorizontalColumnsCount;
393
WORD m_wFragmentsCount;
394
WORD m_wTextFragmentsCount;
395
WORD m_wPictureFragmentsCount;
396
WORD m_wTableFragmentsCount;
402
BOOL m_FlagOneString;
404
Int32 m_VTerminalColumnNumber;
407
/////////////////////////////////////////////////////////////////////////////
408
// HorizontalColumn class
409
class CRtfHorizontalColumn//:public CObject
412
CRtfHorizontalColumn();
413
~CRtfHorizontalColumn();
417
BOOL Write(/*CWordArray*/vectorWord* arRightBoundTerminalColumns, Int32* VTerminalColumnNumber);
418
void WriteTerminalColumns(/*CWordArray*/vectorWord* arRightBoundTerminalColumns,
419
Int32* VTerminalColumnNumber,
420
Int32 CountVTerminalColumns,
421
RtfSectorInfo* SectorInfo);
422
void WriteFramesInTerminalColumn(RtfSectorInfo* SectorInfo,BOOL FlagFirstTerminalFragment,Int32 TopPositionFirstTerminalFragment);
423
void WriteNonTerminalColumns(RtfSectorInfo* SectorInfo);
424
void WriteTerminalColumnsTablesAndPictures(RtfSectorInfo *SectorInfo);
425
void CalcHorizontalColumn(void);
426
Int32 GetCountAndRightBoundVTerminalColumns(/*CWordArray*/vectorWord* arRightBoundTerminalColumns,vectorWord/*CWordArray*/* arWidthTerminalColumns);
427
void FindHeadingAndSetFrameFlag(void);
428
void DefineTerminalProperty(void);
429
void FillingVTerminalColumnsIndex(void);
430
void ToPlacePicturesAndTables(CRtfFragment* Frament);
431
BOOL CheckTermColumn(void);
432
void SortFragments(void);
433
WORD GetFreeSpaceBetweenPrevAndCurrentFragments(int TopPosCurFrag, RtfSectorInfo *SectorInfo);
434
WORD GetOffsetFromPrevTextFragment(CRtfFragment *pRtfFragment);
435
BOOL GetOverLayedFlag(int CurFragmentNumber);
436
void SetFlagObjectInColumnForPageFragment( CRtfFragment* CurFragment );
438
/*CObArray*/std::vector<CRtfVerticalColumn*> m_arVerticalColumns;
439
/*CObArray*/std::vector<vectorWord*> m_arVTerminalColumnsGroup;
440
/*CObArray*/std::vector<vectorWord*> m_arVTerminalColumnsIndex;
441
/*CWordArray*/vectorWord m_arSpacePlace;
442
/*CByteArray*/std::vector<BYTE> m_arOrderingNumber;
444
WORD m_wVerticalColumnsCount;
451
/////////////////////////////////////////////////////////////////////////////
452
// VerticalColumn class
453
class CRtfVerticalColumn//:public CObject
456
CRtfVerticalColumn();
457
~CRtfVerticalColumn();
459
BOOL Write( BOOL OutPutType ,RtfSectorInfo* SectorInfo);
460
void SetSpaceRect(CRtfFragment* CurrentFragment, RtfSectorInfo* SectorInfo);
462
/*CObArray*/std::vector<CRtfFragment*> m_arFragments;
465
WORD m_wFragmentsCount;
471
BOOL m_bFlagObjectInColumn;
475
/////////////////////////////////////////////////////////////////////////////
477
class CRtfString//:public CObject
483
CRtfWord* GetFirstWord (void);
484
CRtfWord* GetNextWord (void);
486
WORD get_max_font_size (void);
487
Int16 GetStringSizeInTwips (void);
488
WORD GetRealStringSize (void);
490
/*CObArray*/std::vector<CRtfWord*> m_arWords;
494
CRtfFragment* m_Frag;
505
WORD m_wFlagBeginParagraph;
507
WORD m_wPrevAlignment;
508
WORD m_LengthStringInTwips;
510
BYTE m_wLeftBorderEqual;
511
BYTE m_wRightBorderEqual;
513
BYTE m_bLineTransfer;
518
Word32 S_Flags; //NEGA_STR vmk 10-06-2001
521
/////////////////////////////////////////////////////////////////////////////
523
class CRtfWord//:public CObject
529
CRtfChar* GetFirstChar();
530
CRtfChar* GetNextChar();
532
void get_coordinates_and_probability(void);
534
/*CObArray*/std::vector<CRtfChar*> m_arChars;
538
CRtfString* m_String;
549
WORD m_wIdealFontPointSize;
550
WORD m_wRealFontPointSize;
553
/////////////////////////////////////////////////////////////////////////////
555
class CRtfChar//:public CObject
566
} m_chrVersions[REC_MAX_VERS];//!!! Art
571
BYTE m_bFlg_spell_nocarrying;
572
BYTE m_bFlg_cup_drop;
575
WORD m_wFontPointSize;
579
#endif // __CreateRtf_h__