thinreports 0.9.1 → 0.11.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (213) hide show
  1. checksums.yaml +5 -5
  2. data/.github/workflows/test.yml +39 -0
  3. data/.gitignore +1 -0
  4. data/CHANGELOG.md +59 -2
  5. data/Dockerfile +12 -0
  6. data/Gemfile +7 -4
  7. data/README.md +44 -22
  8. data/Rakefile +14 -31
  9. data/lib/thinreports.rb +16 -15
  10. data/lib/thinreports/config.rb +2 -24
  11. data/lib/thinreports/core/errors.rb +6 -17
  12. data/lib/thinreports/core/format/base.rb +62 -61
  13. data/lib/thinreports/core/shape.rb +10 -12
  14. data/lib/thinreports/core/shape/base.rb +3 -12
  15. data/lib/thinreports/core/shape/base/interface.rb +34 -32
  16. data/lib/thinreports/core/shape/base/internal.rb +45 -43
  17. data/lib/thinreports/core/shape/basic.rb +12 -12
  18. data/lib/thinreports/core/shape/basic/block_format.rb +8 -6
  19. data/lib/thinreports/core/shape/basic/block_interface.rb +24 -22
  20. data/lib/thinreports/core/shape/basic/block_internal.rb +28 -26
  21. data/lib/thinreports/core/shape/basic/format.rb +11 -9
  22. data/lib/thinreports/core/shape/basic/interface.rb +79 -77
  23. data/lib/thinreports/core/shape/basic/internal.rb +17 -14
  24. data/lib/thinreports/core/shape/image_block.rb +9 -9
  25. data/lib/thinreports/core/shape/image_block/format.rb +7 -5
  26. data/lib/thinreports/core/shape/image_block/interface.rb +15 -13
  27. data/lib/thinreports/core/shape/image_block/internal.rb +10 -8
  28. data/lib/thinreports/core/shape/list.rb +13 -13
  29. data/lib/thinreports/core/shape/list/format.rb +83 -77
  30. data/lib/thinreports/core/shape/list/manager.rb +179 -176
  31. data/lib/thinreports/core/shape/list/page.rb +91 -93
  32. data/lib/thinreports/core/shape/list/page_state.rb +42 -40
  33. data/lib/thinreports/core/shape/list/section_format.rb +28 -26
  34. data/lib/thinreports/core/shape/list/section_interface.rb +42 -40
  35. data/lib/thinreports/core/shape/list/section_internal.rb +21 -19
  36. data/lib/thinreports/core/shape/manager.rb +4 -13
  37. data/lib/thinreports/core/shape/manager/format.rb +21 -19
  38. data/lib/thinreports/core/shape/manager/internal.rb +87 -84
  39. data/lib/thinreports/core/shape/manager/target.rb +93 -95
  40. data/lib/thinreports/core/shape/page_number.rb +9 -9
  41. data/lib/thinreports/core/shape/page_number/format.rb +20 -18
  42. data/lib/thinreports/core/shape/page_number/interface.rb +20 -18
  43. data/lib/thinreports/core/shape/page_number/internal.rb +46 -44
  44. data/lib/thinreports/core/shape/style.rb +5 -14
  45. data/lib/thinreports/core/shape/style/base.rb +121 -120
  46. data/lib/thinreports/core/shape/style/basic.rb +12 -10
  47. data/lib/thinreports/core/shape/style/graphic.rb +35 -33
  48. data/lib/thinreports/core/shape/style/text.rb +113 -107
  49. data/lib/thinreports/core/shape/text.rb +9 -9
  50. data/lib/thinreports/core/shape/text/format.rb +10 -9
  51. data/lib/thinreports/core/shape/text/interface.rb +13 -11
  52. data/lib/thinreports/core/shape/text/internal.rb +14 -12
  53. data/lib/thinreports/core/shape/text_block.rb +10 -10
  54. data/lib/thinreports/core/shape/text_block/format.rb +35 -33
  55. data/lib/thinreports/core/shape/text_block/formatter.rb +26 -24
  56. data/lib/thinreports/core/shape/text_block/formatter/basic.rb +25 -25
  57. data/lib/thinreports/core/shape/text_block/formatter/datetime.rb +15 -12
  58. data/lib/thinreports/core/shape/text_block/formatter/number.rb +52 -34
  59. data/lib/thinreports/core/shape/text_block/formatter/padding.rb +17 -14
  60. data/lib/thinreports/core/shape/text_block/interface.rb +25 -23
  61. data/lib/thinreports/core/shape/text_block/internal.rb +66 -68
  62. data/lib/thinreports/core/utils.rb +7 -3
  63. data/lib/thinreports/generator/pdf.rb +24 -25
  64. data/lib/thinreports/generator/pdf/document.rb +109 -110
  65. data/lib/thinreports/generator/pdf/document/draw_shape.rb +57 -51
  66. data/lib/thinreports/generator/pdf/document/draw_template_items.rb +50 -47
  67. data/lib/thinreports/generator/pdf/document/font.rb +67 -58
  68. data/lib/thinreports/generator/pdf/document/graphics.rb +32 -33
  69. data/lib/thinreports/generator/pdf/document/graphics/attributes.rb +121 -121
  70. data/lib/thinreports/generator/pdf/document/graphics/basic.rb +112 -114
  71. data/lib/thinreports/generator/pdf/document/graphics/image.rb +58 -150
  72. data/lib/thinreports/generator/pdf/document/graphics/text.rb +149 -137
  73. data/lib/thinreports/generator/pdf/document/page.rb +60 -64
  74. data/lib/thinreports/generator/pdf/document/parse_color.rb +37 -37
  75. data/lib/thinreports/generator/pdf/drawer/base.rb +41 -41
  76. data/lib/thinreports/generator/pdf/drawer/list.rb +56 -54
  77. data/lib/thinreports/generator/pdf/drawer/list_section.rb +42 -40
  78. data/lib/thinreports/generator/pdf/drawer/page.rb +101 -96
  79. data/lib/thinreports/generator/pdf/prawn_ext.rb +4 -30
  80. data/lib/thinreports/generator/pdf/prawn_ext/calc_image_dimensions.rb +32 -0
  81. data/lib/thinreports/generator/pdf/prawn_ext/width_of.rb +35 -0
  82. data/lib/thinreports/layout.rb +5 -7
  83. data/lib/thinreports/layout/base.rb +5 -9
  84. data/lib/thinreports/layout/format.rb +17 -13
  85. data/lib/thinreports/layout/legacy_schema.rb +17 -13
  86. data/lib/thinreports/layout/version.rb +22 -25
  87. data/lib/thinreports/report.rb +4 -6
  88. data/lib/thinreports/report/base.rb +24 -51
  89. data/lib/thinreports/report/internal.rb +13 -15
  90. data/lib/thinreports/report/page.rb +5 -11
  91. data/lib/thinreports/version.rb +2 -2
  92. data/thinreports.gemspec +10 -19
  93. metadata +13 -288
  94. data/.travis.yml +0 -19
  95. data/examples/character_spacing/character_spacing.rb +0 -8
  96. data/examples/character_spacing/character_spacing.tlf +0 -293
  97. data/examples/dynamic_image/dynamic_image.rb +0 -31
  98. data/examples/dynamic_image/dynamic_image.tlf +0 -661
  99. data/examples/dynamic_image/img200x100.png +0 -0
  100. data/examples/dynamic_image/img50x50.png +0 -0
  101. data/examples/dynamic_style/dynamic_style.rb +0 -150
  102. data/examples/dynamic_style/dynamic_style.tlf +0 -1835
  103. data/examples/dynamic_style/dynamic_style_in_list.tlf +0 -344
  104. data/examples/dynamic_style/image.png +0 -0
  105. data/examples/eudc/eudc.rb +0 -20
  106. data/examples/eudc/eudc.tlf +0 -180
  107. data/examples/eudc/eudc.ttf +0 -0
  108. data/examples/helper.rb +0 -50
  109. data/examples/hidden_shapes/hidden_shapes.rb +0 -9
  110. data/examples/hidden_shapes/hidden_shapes.tlf +0 -449
  111. data/examples/list_events/list_events.rb +0 -32
  112. data/examples/list_events/list_events.tlf +0 -361
  113. data/examples/list_manual_generation/list_manual_generation.rb +0 -22
  114. data/examples/list_manual_generation/list_manual_generation.tlf +0 -132
  115. data/examples/list_page_number/list_page_number.rb +0 -17
  116. data/examples/list_page_number/list_page_number.tlf +0 -254
  117. data/examples/page_number/page_number.rb +0 -33
  118. data/examples/page_number/page_number.tlf +0 -215
  119. data/examples/palleted_png/palleted_png.png +0 -0
  120. data/examples/palleted_png/palleted_png.rb +0 -11
  121. data/examples/palleted_png/palleted_png.tlf +0 -47
  122. data/examples/password_setting/password_setting.rb +0 -10
  123. data/examples/password_setting/password_setting.tlf +0 -45
  124. data/examples/report_callbacks/report_callbacks.rb +0 -14
  125. data/examples/report_callbacks/report_callbacks.tlf +0 -147
  126. data/examples/single_line_tblock/single_line_tblock.rb +0 -13
  127. data/examples/single_line_tblock/single_line_tblock.tlf +0 -170
  128. data/examples/tblock_overflow/tblock_overflow.rb +0 -20
  129. data/examples/tblock_overflow/tblock_overflow.tlf +0 -538
  130. data/examples/tblock_styles/font_size.tlf +0 -383
  131. data/examples/tblock_styles/tblock_styles.rb +0 -43
  132. data/examples/tblock_styles/tblock_styles.tlf +0 -889
  133. data/examples/text_align/text_align.rb +0 -8
  134. data/examples/text_align/text_align.tlf +0 -241
  135. data/examples/typeB_page_size/B4_ISO.tlf +0 -45
  136. data/examples/typeB_page_size/B4_JIS.tlf +0 -45
  137. data/examples/typeB_page_size/typeB_page_size.rb +0 -17
  138. data/examples/word_wrap/word_wrap.rb +0 -26
  139. data/examples/word_wrap/word_wrap.tlf +0 -297
  140. data/lib/thinreports/generator.rb +0 -29
  141. data/lib/thinreports/generator/base.rb +0 -40
  142. data/lib/thinreports/generator/configuration.rb +0 -31
  143. data/lib/thinreports/report/events.rb +0 -32
  144. data/test/data/font.ttf +0 -0
  145. data/test/data/image_normal.jpg +0 -0
  146. data/test/data/image_normal.png +0 -0
  147. data/test/data/image_normal_jpg_noext +0 -0
  148. data/test/data/image_normal_png_noext +0 -0
  149. data/test/data/image_pallete_based.png +0 -0
  150. data/test/data/legacy_layout/all-items.tlf +0 -1
  151. data/test/schema_helper.rb +0 -121
  152. data/test/test_helper.rb +0 -42
  153. data/test/tmp/.gitkeep +0 -0
  154. data/test/unit/core/format/test_base.rb +0 -152
  155. data/test/unit/core/shape/base/test_internal.rb +0 -87
  156. data/test/unit/core/shape/basic/test_block_format.rb +0 -23
  157. data/test/unit/core/shape/basic/test_block_interface.rb +0 -29
  158. data/test/unit/core/shape/basic/test_block_internal.rb +0 -55
  159. data/test/unit/core/shape/basic/test_format.rb +0 -37
  160. data/test/unit/core/shape/basic/test_interface.rb +0 -108
  161. data/test/unit/core/shape/basic/test_internal.rb +0 -55
  162. data/test/unit/core/shape/image_block/test_interface.rb +0 -24
  163. data/test/unit/core/shape/image_block/test_internal.rb +0 -31
  164. data/test/unit/core/shape/list/test_format.rb +0 -111
  165. data/test/unit/core/shape/list/test_manager.rb +0 -67
  166. data/test/unit/core/shape/list/test_page.rb +0 -82
  167. data/test/unit/core/shape/list/test_page_state.rb +0 -31
  168. data/test/unit/core/shape/list/test_section_format.rb +0 -36
  169. data/test/unit/core/shape/list/test_section_interface.rb +0 -75
  170. data/test/unit/core/shape/list/test_section_internal.rb +0 -50
  171. data/test/unit/core/shape/manager/test_format.rb +0 -38
  172. data/test/unit/core/shape/manager/test_internal.rb +0 -132
  173. data/test/unit/core/shape/manager/test_target.rb +0 -140
  174. data/test/unit/core/shape/page_number/test_format.rb +0 -55
  175. data/test/unit/core/shape/page_number/test_interface.rb +0 -33
  176. data/test/unit/core/shape/page_number/test_internal.rb +0 -81
  177. data/test/unit/core/shape/styles/test_base.rb +0 -191
  178. data/test/unit/core/shape/styles/test_basic.rb +0 -24
  179. data/test/unit/core/shape/styles/test_graphic.rb +0 -50
  180. data/test/unit/core/shape/styles/test_text.rb +0 -97
  181. data/test/unit/core/shape/text/test_format.rb +0 -44
  182. data/test/unit/core/shape/text/test_internal.rb +0 -20
  183. data/test/unit/core/shape/text_block/formatter/test_basic.rb +0 -24
  184. data/test/unit/core/shape/text_block/formatter/test_datetime.rb +0 -49
  185. data/test/unit/core/shape/text_block/formatter/test_number.rb +0 -76
  186. data/test/unit/core/shape/text_block/formatter/test_padding.rb +0 -77
  187. data/test/unit/core/shape/text_block/test_format.rb +0 -169
  188. data/test/unit/core/shape/text_block/test_formatter.rb +0 -28
  189. data/test/unit/core/shape/text_block/test_interface.rb +0 -63
  190. data/test/unit/core/shape/text_block/test_internal.rb +0 -128
  191. data/test/unit/core/test_shape.rb +0 -52
  192. data/test/unit/core/test_utils.rb +0 -68
  193. data/test/unit/generator/pdf/document/graphics/test_attributes.rb +0 -135
  194. data/test/unit/generator/pdf/document/graphics/test_basic.rb +0 -45
  195. data/test/unit/generator/pdf/document/graphics/test_image.rb +0 -150
  196. data/test/unit/generator/pdf/document/graphics/test_text.rb +0 -171
  197. data/test/unit/generator/pdf/document/test_font.rb +0 -84
  198. data/test/unit/generator/pdf/document/test_graphics.rb +0 -42
  199. data/test/unit/generator/pdf/document/test_page.rb +0 -122
  200. data/test/unit/generator/pdf/document/test_parse_color.rb +0 -30
  201. data/test/unit/generator/pdf/test_document.rb +0 -20
  202. data/test/unit/generator/test_base.rb +0 -40
  203. data/test/unit/generator/test_configuration.rb +0 -21
  204. data/test/unit/generator/test_pdf.rb +0 -24
  205. data/test/unit/layout/test_base.rb +0 -41
  206. data/test/unit/layout/test_format.rb +0 -100
  207. data/test/unit/layout/test_legacy_schema.rb +0 -574
  208. data/test/unit/layout/test_version.rb +0 -95
  209. data/test/unit/report/test_base.rb +0 -262
  210. data/test/unit/report/test_internal.rb +0 -206
  211. data/test/unit/test_config.rb +0 -51
  212. data/test/unit/test_layout.rb +0 -12
  213. data/test/unit/test_report.rb +0 -18
@@ -1,31 +0,0 @@
1
- # coding: utf-8
2
-
3
- require 'open-uri'
4
-
5
- example :dynamic_image, 'Show images dynamically' do
6
- image50x50 = resource('img50x50.png')
7
- image200x100 = resource('img200x100.png')
8
-
9
- Thinreports::Report.generate filename: output_filename do |r|
10
- r.use_layout(layout_filename)
11
-
12
- r.start_new_page
13
-
14
- r.page.values(pos_top_left: image50x50,
15
- pos_top_center: image50x50,
16
- pos_top_right: image50x50,
17
- pos_center_left: image50x50,
18
- pos_center_center: image50x50,
19
- pos_center_right: image50x50,
20
- pos_bottom_left: image50x50,
21
- pos_bottom_center: image50x50,
22
- pos_bottom_right: image50x50)
23
-
24
- r.page.item(:overflow).src = image200x100
25
- r.page[:thinreports_logo] = open('http://www.thinreports.org/assets/logos/thinreports-logo.png')
26
-
27
- r.page.list(:list) do |list|
28
- 3.times { list.add_row in_list: image50x50 }
29
- end
30
- end
31
- end
@@ -1,661 +0,0 @@
1
- {
2
- "version": "0.9.0",
3
- "items": [
4
- {
5
- "id": "",
6
- "type": "rect",
7
- "display": true,
8
- "description": "",
9
- "x": 20,
10
- "y": 51,
11
- "width": 100,
12
- "height": 100,
13
- "style": {
14
- "border-color": "#ff0000",
15
- "border-width": 1,
16
- "border-style": "solid",
17
- "fill-color": "none"
18
- },
19
- "border-radius": 0
20
- },
21
- {
22
- "id": "",
23
- "type": "rect",
24
- "display": true,
25
- "description": "",
26
- "x": 20,
27
- "y": 443,
28
- "width": 150,
29
- "height": 100,
30
- "style": {
31
- "border-color": "#ff0000",
32
- "border-width": 1,
33
- "border-style": "solid",
34
- "fill-color": "none"
35
- },
36
- "border-radius": 0
37
- },
38
- {
39
- "id": "",
40
- "type": "text",
41
- "display": true,
42
- "description": "",
43
- "x": 20,
44
- "y": 20,
45
- "width": 200,
46
- "height": 26.7,
47
- "style": {
48
- "font-family": [
49
- "Times New Roman"
50
- ],
51
- "font-size": 24,
52
- "color": "#000000",
53
- "text-align": "left",
54
- "vertical-align": "top",
55
- "line-height": "",
56
- "line-height-ratio": "",
57
- "letter-spacing": "",
58
- "font-style": []
59
- },
60
- "texts": [
61
- "Positioning"
62
- ]
63
- },
64
- {
65
- "id": "",
66
- "type": "rect",
67
- "display": true,
68
- "description": "",
69
- "x": 130,
70
- "y": 51,
71
- "width": 100,
72
- "height": 100,
73
- "style": {
74
- "border-color": "#ff0000",
75
- "border-width": 1,
76
- "border-style": "solid",
77
- "fill-color": "none"
78
- },
79
- "border-radius": 0
80
- },
81
- {
82
- "id": "",
83
- "type": "rect",
84
- "display": true,
85
- "description": "",
86
- "x": 240,
87
- "y": 51,
88
- "width": 100,
89
- "height": 100,
90
- "style": {
91
- "border-color": "#ff0000",
92
- "border-width": 1,
93
- "border-style": "solid",
94
- "fill-color": "none"
95
- },
96
- "border-radius": 0
97
- },
98
- {
99
- "id": "",
100
- "type": "text",
101
- "display": true,
102
- "description": "",
103
- "x": 20,
104
- "y": 385,
105
- "width": 200,
106
- "height": 26.7,
107
- "style": {
108
- "font-family": [
109
- "Times New Roman"
110
- ],
111
- "font-size": 24,
112
- "color": "#000000",
113
- "text-align": "left",
114
- "vertical-align": "top",
115
- "line-height": "",
116
- "line-height-ratio": "",
117
- "letter-spacing": "",
118
- "font-style": []
119
- },
120
- "texts": [
121
- "Overflowing"
122
- ]
123
- },
124
- {
125
- "id": "",
126
- "type": "text",
127
- "display": true,
128
- "description": "",
129
- "x": 25,
130
- "y": 411,
131
- "width": 288,
132
- "height": 26,
133
- "style": {
134
- "font-family": [
135
- "Helvetica"
136
- ],
137
- "font-size": 14,
138
- "color": "#000000",
139
- "text-align": "left",
140
- "vertical-align": "top",
141
- "line-height": "",
142
- "line-height-ratio": "",
143
- "letter-spacing": "",
144
- "font-style": []
145
- },
146
- "texts": [
147
- "Resize automatically to 150x75 from 200x100."
148
- ]
149
- },
150
- {
151
- "id": "",
152
- "type": "text",
153
- "display": true,
154
- "description": "",
155
- "x": 20,
156
- "y": 565,
157
- "width": 200,
158
- "height": 26.7,
159
- "style": {
160
- "font-family": [
161
- "Times New Roman"
162
- ],
163
- "font-size": 24,
164
- "color": "#000000",
165
- "text-align": "left",
166
- "vertical-align": "top",
167
- "line-height": "",
168
- "line-height-ratio": "",
169
- "letter-spacing": "",
170
- "font-style": []
171
- },
172
- "texts": [
173
- "Open URI"
174
- ]
175
- },
176
- {
177
- "id": "",
178
- "type": "rect",
179
- "display": true,
180
- "description": "",
181
- "x": 20,
182
- "y": 628,
183
- "width": 555.2,
184
- "height": 92.3,
185
- "style": {
186
- "border-color": "#ff0000",
187
- "border-width": 1,
188
- "border-style": "solid",
189
- "fill-color": "none"
190
- },
191
- "border-radius": 0
192
- },
193
- {
194
- "id": "",
195
- "type": "text",
196
- "display": true,
197
- "description": "",
198
- "x": 25,
199
- "y": 595,
200
- "width": 369.4,
201
- "height": 26,
202
- "style": {
203
- "font-family": [
204
- "Helvetica"
205
- ],
206
- "font-size": 14,
207
- "color": "#000000",
208
- "text-align": "left",
209
- "vertical-align": "top",
210
- "line-height": "",
211
- "line-height-ratio": "",
212
- "letter-spacing": "",
213
- "font-style": []
214
- },
215
- "texts": [
216
- "http://www.thinreports.org/assets/logos/thinreports-logo.png"
217
- ]
218
- },
219
- {
220
- "id": "",
221
- "type": "rect",
222
- "display": true,
223
- "description": "",
224
- "x": 20,
225
- "y": 443,
226
- "width": 150,
227
- "height": 76,
228
- "style": {
229
- "border-color": "#f79646",
230
- "border-width": 1,
231
- "border-style": "dashed",
232
- "fill-color": "none"
233
- },
234
- "border-radius": 0
235
- },
236
- {
237
- "id": "list",
238
- "type": "list",
239
- "display": true,
240
- "description": "",
241
- "x": 361.1,
242
- "y": 55,
243
- "width": 199.1,
244
- "height": 312.1,
245
- "header": {
246
- "enabled": true,
247
- "height": 33.2,
248
- "translate": {
249
- "x": 10,
250
- "y": -395.2
251
- },
252
- "items": [
253
- {
254
- "id": "",
255
- "type": "text",
256
- "display": true,
257
- "description": "",
258
- "x": 351.1,
259
- "y": 450.2,
260
- "width": 199.1,
261
- "height": 33.2,
262
- "style": {
263
- "font-family": [
264
- "Times New Roman"
265
- ],
266
- "font-size": 18,
267
- "color": "#000000",
268
- "text-align": "center",
269
- "vertical-align": "middle",
270
- "line-height": "",
271
- "line-height-ratio": "",
272
- "letter-spacing": "",
273
- "font-style": []
274
- },
275
- "texts": [
276
- "In List"
277
- ]
278
- },
279
- {
280
- "id": "",
281
- "type": "line",
282
- "display": true,
283
- "description": "",
284
- "style": {
285
- "border-color": "#000000",
286
- "border-width": 1,
287
- "border-style": "solid"
288
- },
289
- "x1": 353.1,
290
- "y1": 483.4,
291
- "x2": 560.2,
292
- "y2": 483.4
293
- }
294
- ]
295
- },
296
- "detail": {
297
- "height": 60,
298
- "translate": {
299
- "x": 10,
300
- "y": -395.2
301
- },
302
- "items": [
303
- {
304
- "id": "",
305
- "type": "line",
306
- "display": true,
307
- "description": "",
308
- "style": {
309
- "border-color": "#000000",
310
- "border-width": 1,
311
- "border-style": "solid"
312
- },
313
- "x1": 351.1,
314
- "y1": 543.2,
315
- "x2": 560.2,
316
- "y2": 543.2
317
- },
318
- {
319
- "id": "in_list",
320
- "type": "image-block",
321
- "display": true,
322
- "description": "",
323
- "x": 351.1,
324
- "y": 483.4,
325
- "width": 198.1,
326
- "height": 58.8,
327
- "style": {
328
- "position-x": "center",
329
- "position-y": "middle"
330
- }
331
- }
332
- ]
333
- },
334
- "page-footer": {
335
- "enabled": false,
336
- "height": 0,
337
- "translate": {
338
- "x": 10,
339
- "y": -368.4
340
- },
341
- "items": []
342
- },
343
- "footer": {
344
- "enabled": false,
345
- "height": 0,
346
- "translate": {
347
- "x": 10,
348
- "y": -393.3
349
- },
350
- "items": []
351
- },
352
- "content-height": 278.90000000000003,
353
- "auto-page-break": false
354
- },
355
- {
356
- "id": "",
357
- "type": "text",
358
- "display": true,
359
- "description": "",
360
- "x": 359,
361
- "y": 20,
362
- "width": 200,
363
- "height": 26.7,
364
- "style": {
365
- "font-family": [
366
- "Times New Roman"
367
- ],
368
- "font-size": 24,
369
- "color": "#000000",
370
- "text-align": "left",
371
- "vertical-align": "top",
372
- "line-height": "",
373
- "line-height-ratio": "",
374
- "letter-spacing": "",
375
- "font-style": []
376
- },
377
- "texts": [
378
- "Use in List"
379
- ]
380
- },
381
- {
382
- "id": "pos_top_left",
383
- "type": "image-block",
384
- "display": true,
385
- "description": "",
386
- "x": 20,
387
- "y": 51,
388
- "width": 100,
389
- "height": 100,
390
- "style": {
391
- "position-x": "left",
392
- "position-y": "top"
393
- }
394
- },
395
- {
396
- "id": "pos_top_center",
397
- "type": "image-block",
398
- "display": true,
399
- "description": "",
400
- "x": 130,
401
- "y": 51,
402
- "width": 100,
403
- "height": 100,
404
- "style": {
405
- "position-x": "center",
406
- "position-y": "top"
407
- }
408
- },
409
- {
410
- "id": "pos_top_right",
411
- "type": "image-block",
412
- "display": true,
413
- "description": "",
414
- "x": 240,
415
- "y": 51,
416
- "width": 100,
417
- "height": 100,
418
- "style": {
419
- "position-x": "right",
420
- "position-y": "top"
421
- }
422
- },
423
- {
424
- "id": "pos_center_left",
425
- "type": "image-block",
426
- "display": true,
427
- "description": "",
428
- "x": 20,
429
- "y": 161,
430
- "width": 100,
431
- "height": 100,
432
- "style": {
433
- "position-x": "left",
434
- "position-y": "middle"
435
- }
436
- },
437
- {
438
- "id": "",
439
- "type": "rect",
440
- "display": true,
441
- "description": "",
442
- "x": 20,
443
- "y": 161,
444
- "width": 100,
445
- "height": 100,
446
- "style": {
447
- "border-color": "#ff0000",
448
- "border-width": 1,
449
- "border-style": "solid",
450
- "fill-color": "none"
451
- },
452
- "border-radius": 0
453
- },
454
- {
455
- "id": "pos_center_center",
456
- "type": "image-block",
457
- "display": true,
458
- "description": "",
459
- "x": 130,
460
- "y": 161,
461
- "width": 100,
462
- "height": 100,
463
- "style": {
464
- "position-x": "center",
465
- "position-y": "middle"
466
- }
467
- },
468
- {
469
- "id": "",
470
- "type": "rect",
471
- "display": true,
472
- "description": "",
473
- "x": 130,
474
- "y": 161,
475
- "width": 100,
476
- "height": 100,
477
- "style": {
478
- "border-color": "#ff0000",
479
- "border-width": 1,
480
- "border-style": "solid",
481
- "fill-color": "none"
482
- },
483
- "border-radius": 0
484
- },
485
- {
486
- "id": "pos_center_right",
487
- "type": "image-block",
488
- "display": true,
489
- "description": "",
490
- "x": 240,
491
- "y": 161,
492
- "width": 100,
493
- "height": 100,
494
- "style": {
495
- "position-x": "right",
496
- "position-y": "middle"
497
- }
498
- },
499
- {
500
- "id": "",
501
- "type": "rect",
502
- "display": true,
503
- "description": "",
504
- "x": 240,
505
- "y": 161,
506
- "width": 100,
507
- "height": 100,
508
- "style": {
509
- "border-color": "#ff0000",
510
- "border-width": 1,
511
- "border-style": "solid",
512
- "fill-color": "none"
513
- },
514
- "border-radius": 0
515
- },
516
- {
517
- "id": "pos_bottom_left",
518
- "type": "image-block",
519
- "display": true,
520
- "description": "",
521
- "x": 20,
522
- "y": 271,
523
- "width": 100,
524
- "height": 100,
525
- "style": {
526
- "position-x": "left",
527
- "position-y": "bottom"
528
- }
529
- },
530
- {
531
- "id": "",
532
- "type": "rect",
533
- "display": true,
534
- "description": "",
535
- "x": 20,
536
- "y": 271,
537
- "width": 100,
538
- "height": 100,
539
- "style": {
540
- "border-color": "#ff0000",
541
- "border-width": 1,
542
- "border-style": "solid",
543
- "fill-color": "none"
544
- },
545
- "border-radius": 0
546
- },
547
- {
548
- "id": "pos_bottom_center",
549
- "type": "image-block",
550
- "display": true,
551
- "description": "",
552
- "x": 130,
553
- "y": 271,
554
- "width": 100,
555
- "height": 100,
556
- "style": {
557
- "position-x": "center",
558
- "position-y": "bottom"
559
- }
560
- },
561
- {
562
- "id": "",
563
- "type": "rect",
564
- "display": true,
565
- "description": "",
566
- "x": 130,
567
- "y": 271,
568
- "width": 100,
569
- "height": 100,
570
- "style": {
571
- "border-color": "#ff0000",
572
- "border-width": 1,
573
- "border-style": "solid",
574
- "fill-color": "none"
575
- },
576
- "border-radius": 0
577
- },
578
- {
579
- "id": "pos_bottom_right",
580
- "type": "image-block",
581
- "display": true,
582
- "description": "",
583
- "x": 240,
584
- "y": 271,
585
- "width": 100,
586
- "height": 100,
587
- "style": {
588
- "position-x": "right",
589
- "position-y": "bottom"
590
- }
591
- },
592
- {
593
- "id": "",
594
- "type": "rect",
595
- "display": true,
596
- "description": "",
597
- "x": 240,
598
- "y": 271,
599
- "width": 100,
600
- "height": 100,
601
- "style": {
602
- "border-color": "#ff0000",
603
- "border-width": 1,
604
- "border-style": "solid",
605
- "fill-color": "none"
606
- },
607
- "border-radius": 0
608
- },
609
- {
610
- "id": "overflow",
611
- "type": "image-block",
612
- "display": true,
613
- "description": "",
614
- "x": 20,
615
- "y": 443,
616
- "width": 150,
617
- "height": 100,
618
- "style": {
619
- "position-x": "left",
620
- "position-y": "top"
621
- }
622
- },
623
- {
624
- "id": "thinreports_logo",
625
- "type": "image-block",
626
- "display": true,
627
- "description": "",
628
- "x": 20,
629
- "y": 628,
630
- "width": 555.2,
631
- "height": 92.3,
632
- "style": {
633
- "position-x": "center",
634
- "position-y": "middle"
635
- }
636
- }
637
- ],
638
- "state": {
639
- "layout-guides": [
640
- {
641
- "type": "x",
642
- "position": 340.1
643
- },
644
- {
645
- "type": "y",
646
- "position": 371.1
647
- }
648
- ]
649
- },
650
- "title": "",
651
- "report": {
652
- "paper-type": "A4",
653
- "orientation": "portrait",
654
- "margin": [
655
- 20,
656
- 20,
657
- 20,
658
- 20
659
- ]
660
- }
661
- }