1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
|
<?xml version="1.0" encoding="UTF-8" ?>
<status>
<developers>
<!-- in strict alphabetical order -->
<person name="Bertrand Delacretaz" email="bdelacretaz@apache.org" id="BD"/>
<person name="Christian Geisert" email="chrisg@apache.org" id="CG"/>
<person name="Karen Lease" email="klease@apache.org" id="KL"/>
<person name="Keiron Liddle" email="keiron@apache.org" id="KLL"/>
<person name="Jeremias Maerki" email="jeremias@apache.org" id="JM"/>
<person name="Joerg Pietschmann" email="pietsch@apache.org" id="JP"/>
<person name="Arved Sandstrom" email="arved@apache.org" id="AS"/>
<person name="Peter B. West" email="pbwest@apache.org" id="PBW"/>
<!--
inactive??
<person name="Kelly Campbell" email="kellyc@apache.org" id="KC"/>
<person name="Steven Coffman" email="gears@apache.org" id="SC"/>
<person name="Tore Engvig" email="tore@apache.org" id=""/>
<person name="Stanislav Gorkhover" email="stanislav@apache.org" id=""/>
<person name="Fotis Jannidis" email="fotis@apache.org" id=""/>
<person name="Jordan Naftolin" email="jordan@apache.org" id=""/>
<person name="Eric Schaeffer" email="eschaeffer@apache.org" id=""/>
<person name="Art Welch" email="artw@apache.org" id=""/>
-->
<person name="Volunteer needed" email="fop-dev@xml.apache.org" id="open"/>
</developers>
<todo>
<actions priority="high">
<action context="code" dev="open">
Sort out page sequence details and page numbering.
</action>
<action context="code" dev="open">
Add markers to page when areas added.
When an area is added that is created by an FO that contains markers
then the markers can also be added. There are four types of positions
for markers.
</action>
<action context="code" dev="open">
Retrieve markers from page.
When doing the static areas the markers will need to be available for
retrieving. The marker can then be layed out as normal.
</action>
<action context="code" dev="KLL">
Implement table layout.
The table layout will use the same technique as the block layout. It
will locate suitable breaks between rows or inside rows until table
finished or end of bpd reached.
</action>
<action context="code" dev="open">
Implement list layout.
The list layout like the table layout will be looking for suitable
breaks from the child objects. The it will add the appropriate areas to
the area tree.
</action>
<action context="code" dev="open">
Implement spacing between blocks and the adjustment to
actual height when adding areas.
</action>
<action context="code" dev="open">
Implement force page breaks.
</action>
<action context="code" dev="open">
Implement page columns.
Each column will need to layout until the page is complete.
Need to improve the way that breaks are stored.
</action>
<action context="code" dev="open">
Implement footnote.
A footnote creates an inline parent and a block that is put into
the footnote area.
</action>
<action context="code" dev="open">
Implement border and background for block and inline areas.
</action>
<action context="code" dev="open">
Implement floats.
A float adds an anchor inline or block area to the parent
and a block is added to the nearest reference area. The
reference area layout manager needs to check it fits and
adjust ipd available to line areas.
</action>
<action context="code" dev="open">
Sort out writing directions and stacking.
All blocks and line areas can be stack in different directions
depending on writing mode and orientation.
Need to ensure that all areas can be stacked properly in the
correct direction.
</action>
</actions>
<actions priority="medium">
<action context="design" dev="open">
Design FOP API interfaces.
</action>
<action context="design" dev="open">
Integrate with Jakarta Avalon: logging, configuration, URI resolver,
component management, image caching etc.
</action>
</actions>
<actions priority="low">
<action context="design" dev="open">
Investigate using form XObject for repeated areas
such as static and table header/footer only when the
area does not change.
</action>
<action context="code" dev="open">
Investigate using form XObject for svg images
this can make the svg cacheable in the pdf doc
</action>
</actions>
</todo>
<changes>
<release version="?" date="2002">
<action context="code" dev="KLL" type="update"
due-to="Oleg Tkachenko" due-to-email="olegt@multiconn.com">
Awt viewer improvements - uses java PropertyResourceBundle
for locale strings, cleaned up code and removed old classes
and other small improvements
</action>
<action context="code" dev="KLL" type="update">
Started list layout implementation.
</action>
<action context="code" dev="KLL" type="update">
Improved pagination and page number for page sequences.
</action>
<action context="code" dev="KLL" type="update">
Implemented border and background for many areas.
</action>
<action context="code" dev="KLL" type="update">
Started table layout implementation.
</action>
<action context="docs" dev="KLL" type="update"
due-to="Victor Mote" due-to-email="vic@outfitr.com">
Added link for patch queue.
</action>
<action context="code" dev="KLL" type="update"
due-to="Rainer Garus" due-to-email="rainer.garus@arcor.de">
Fixed npe when a page has several forward links.
Use HashSet to store unresolved references (pages) in area tree
to prevent duplication.
</action>
<action context="code" dev="KLL" type="update">
Implemented example caching mechanism to store pages.
When a page contains a forward reference that has not been
resolved then it can save the page contents to
disk to save memory.
</action>
<action dev="CG" type="add" context="code"
due-to="Bernd Brandstetter" due-to-email="bbrand@freenet.de">
Linking to a specific page and a named destinations of an
external PDF file.
(see www.adobe.com/products/acrobat/pdfs/c01acrotip.pdf)
</action>
<action context="code" dev="KLL" type="update">
Started table layout managers.
</action>
<action context="code" dev="KLL" type="update">
Implemented render pages model.
</action>
<action context="code" dev="KLL" type="update">
Implemented link part of basic link. Internal destination
is resolved. The link is a trait on the inline parent.
</action>
<action context="code" dev="KLL" type="update">
Got bookmark extension working.
Make sure the extension id references are resolved. Once the data is
fully resolved then implement a way for the pdf renderer to add the
bookmarks. See branch for code how to add bookmarks.
</action>
<action context="code" dev="KLL" type="update">
add the pdf side part of bookmark extension
</action>
<action context="code" dev="KLL" type="update">
complete resolving id areas
</action>
<action context="code" dev="KLL" type="update">
Add id areas to page when area added.
When the layout managers add an area to the page it can also add the id
information.
</action>
<action context="code" dev="KLL" type="update">
Resolve id references on other pages, extensions.
When an id is added to a page this will allow id references to be
resolved.
</action>
<action context="code" dev="KLL" type="update">
Fixed a bug in the TTFReader where it tried to read
values for the end character. Handles unsupported
non-unicode cmap better. Added logging.
</action>
<action context="code" dev="JP" type="new">
Add static areas to page
The static areas will need to be handled in a similar way to the flow
except the bpd is unlimited and it will need to reset and repeat for
each page.
</action>
<action context="code" dev="KLL" type="update">
Implemented leader, get leader working and sort out
how inline objects adjust to the ipd
</action>
<action dev="KLL" type="update" context="code">
Calculate line height.
The line height is calculated while finding breaks.
Improved alignment to use the breaks and context.
</action>
<action dev="KLL" type="update" context="code">
Updated batik with change to TextPainter interface and UserAgent.
Improved PDFTextPainter to handle more types of text.
</action>
<action dev="JM" type="update" context="code"
due-to="Stephen Wolke" due-to-email="smwolke@geistig.com">
Added a RunLengthEncode filter for the PostScript renderer.
</action>
<action dev="JM" type="update" context="code">
Replaced the PostScript filters with the refactored ones from the maintenance
branch.
</action>
<action dev="JM" type="update" context="code">
First batch of changes in preparation for adoption of Avalon patterns.
Only changes on logging for now. Mostly usage of LogEnabled contract interface.
</action>
<action dev="JM" type="update" context="build">
Improve build process for more flexibility when external jars change.
Changed to use -projecthelp option from Ant 1.5 instead of "usage" target.
</action>
<action dev="JM" type="update" context="build">
Updated Avalon Framework JAR (with Log4J support, Bug 11274)
</action>
<action dev="KLL" type="update" context="docs"
due-to="Victor Mote" due-to-email="vic@outfitr.com">
Copies across overview for javadocs build.
chmod antRun in build.sh.
</action>
<action dev="KLL" type="update" context="code"
due-to="Kevin O'Neill" due-to-email="kevin@rocketred.com.au">
Minor patch for the TTFReader to remove an unreachable statement
compiler warning
</action>
<action dev="KLL" type="update" context="code"
due-to="Torsten Erler" due-to-email="erlto@net-linx.de">
workaround for eps files that have invalid float bounding box values
float values are rounded off according to the spec the
%%HiResBoundingBox should be used instead for floating position
values
</action>
<action dev="JP" type="update" context="code">
Simplified ASCII85Filter computation, thereby hopefully
working around JVM bugs
</action>
<action dev="KLL" type="add" context="docs"
due-to="Cyril Rognon" due-to-email="crognon@objectiva.fr">
added understanding layout manager document
</action>
<action dev="KLL" type="update" context="docs"
due-to="Peter Kullmann" due-to-email="p.kullmann@arenae.ch">
fixed master-name and a test setup problem
</action>
<action dev="KLL" type="update" context="code">
moved embed font info into the render.pdf package
reduced dependancy on Configuration
</action>
<action dev="KLL" type="update" context="code"
due-to="Kevin O'Neill" due-to-email="kevin@rocketred.com.au">
separated the specific PDFRender functionality from the CTM class
and created a small utility class for the renderer to use
</action>
<action dev="KLL" type="update" context="code">
FontState only used for calculations,
stores font name and size on area tree
</action>
<action dev="KLL" type="update" context="code">
Improved PDFTextPainter to handle different text better
</action>
<action dev="KLL" type="update" context="code">
Applied root element viewBox transform for svg to pdf transcoder
</action>
<action dev="KLL" type="update" context="code">
image test for formats, viewport and scaling
</action>
<action dev="KLL" type="add" context="code">
added various SVG to PDF tests for trancoder
and including in fo
</action>
<action dev="KLL" type="update" context="code">
Implemented viewport and scaling for images
</action>
<action dev="KLL" type="update" context="code">
Implemented viewport and scaling for instream svg
</action>
<action dev="KLL" type="update" context="code">
Removed old area tree
</action>
<action dev="KLL" type="update" context="code">
Optimised gstate usage in pdf files to minimize file size
</action>
<action dev="KLL" type="update" context="code">
Optimised function usage, reuses old functions in pdf files
to minimize file size
</action>
<action dev="KLL" type="add" context="code">
Added transparancy to pdf
</action>
<action dev="KLL" type="update" context="code">
Outputs images immediately to the stream, also drops
reference to image data
</action>
<action dev="KLL" type="add" context="code">
Added resource context for pattern resources
</action>
<action dev="KLL" type="update" context="build">
Added pdf transcoder build target
</action>
<action dev="KLL" type="update" context="code">
Made PDF streams externally configured
</action>
<action dev="KLL" type="update" context="code">
Fixed svg linking in pdf, works with viewbox and url
</action>
<action dev="KLL" type="add" context="code">
Start to mif implementation with new structure handlers
</action>
<action dev="KLL" type="add" context="code">
New structure handler for structure type documents, rtf, mif
and for better layout processing.
</action>
<action dev="KLL" type="update" context="code">
Changed extensions to allow for external xml
</action>
<action dev="KLL" type="add" context="code">
Can have a default element mapping for extensions
</action>
<action dev="KLL" type="add" context="code">
New area tree model
</action>
<action dev="KLL" type="add" context="code">
New renderer model
</action>
<action dev="KLL" type="update" context="code">
Added handlers for xml in renderer
</action>
<action dev="KLL" type="update" context="code">
svg now in an xml handler, FOP can be used without batik
</action>
<action dev="KLL" type="update" context="build">
Removed old xerces and xalan
</action>
<action dev="" type="update" context="code">
Updated to use Jaxp
</action>
<action dev="" type="update" context="code">
Updated to use new avalon framework logger
</action>
<action dev="KLL" type="update" context="code">
Redid image handling so it can use a cache and synchronizes properly
only on the current image while loading
</action>
<action dev="KLL" type="update" context="code">
Changed bookmark extension, now requires a wrapping element bookmark
</action>
<action dev="KL" type="add" context="code">
New layout system using layout managers
</action>
<action dev="KL" type="add" context="code">
Implemented handlers for whitespace handling that collapse whitespace
better in various places
</action>
<action dev="KLL" type="update" context="code">
Changed area tree xml format to match the area tree hierarchy
</action>
</release>
</changes>
</status>
|