Thursday, July 10, 2014

Update 10 July, 2014


+ Bitmaps/Images/Metafiles are now implemented.
+ Pages are properly implemented.
+ Bug Fixing


So, most of the major objects are done, some issues and not much used properties are left.
Testing with various documents would be done.
Code will be perfected.
Would work on fixing the issues mentioned previously. Some are features which are not available in Open Document Format, would try to find a way around.

Thursday, June 26, 2014

Update 26 June


1. Implemented Text-Box bounding box with Rotation.
2. Added Paragraphs and Spans.
3. Paragraph Align property and Span font size, face, color, bold, italic, underline, strike through, all caps, subscript, superscript are implemented.
4.Text is properly implemented with all the major properties being output.Indentation, alignment etc.
5. Now multiple pages can also properly converted.


Issues:
1. Some properties like in paragraph align we have "force-justify" is implemented as justify only.
2. There a Span property "reverse" ( which reverse the color of text, so that text can be visible on dark background and vice versa), i don't know how to output it. ( Neither have parsed it now).
3. Span property "smallcaps" which I added but it not output now properly.
4. Span property "kerning or char spacing" is not being output as expected, because in pagemaker a character can overlap other as with negative kerning and odg takes at condensed spacing only.
5. There is a text property called Tracking basically letter spacing. In pagemaker it is defined as :
NoTrack, Loose, VeryLoose, Normal, Tight and VeryTight.
In the pmd file only a half-word mentioning this is there but there is no details about the value of letter spacing, means Pagemaker must be having some default values. They are need to be determined.
6. About the small-caps, there is a property called small-caps size in percentage. So, i think for the text having small-caps property, will be looking on it soon.


Next :

I would be working shaping text for non-rectangles.

Would be implementing images/bitmaps.



Tuesday, June 10, 2014

Update June 10, 2014

Hi Everyone,

I am working on implementing the import filter from the start of May and till now following are achieved :
  • Reverse Engineered about the encoding of various shapes ( line, rectangle, polygon, ellipse)  in the pmd file format, using oletoy.
  • Parsing of various shape transformations such as Rotation and Skew.
  • Implementation of proper geometry and output the shapes to open document format.
  • Rotation and Skew is implemented for the shapes. So, that basic skeleton of all the shapes are ready.
  • Fill and Stroke are reverse engineered and parsing is done.
  • Solid Fill and Normal Stroke for shapes are output properly.


    Some issues :
  • Ellipse Skew Output is not perfect yet.
  • Fill patterns are to be implemented. ( Bars, Tilted lines, Grids etc.)
  • Stroke patterns are to be implemented. ( Dashed array, multi line stroke etc.)
  • Stroke are not output properly, Pagemaker  stroke overlaps the shape where as open document format adds stroke on the outside the shape. ( To reproduce the problem , try a custom stroke on a rectangle with width 40pt and then convert).
  • Fill doesn't work fine for open polygon.




    What's Next :
  • I am fixing the issues mentioned above.
  • Working on implementing the text boxes and probably by the week end (  June 15, 2014) , it will be done.

You can find a pagemaker file and a converted odg file here :

https://www.dropbox.com/s/3anq4lr6u9dxyfx/fills.pmd

https://www.dropbox.com/s/1w3lki6warxky1t/fills.odg


Cheers

Friday, March 21, 2014

Here , I will keep updating about the details and progress of the LibreOffice project

Implement Adobe Pagemaker import filter

Pagemaker is still available but not actively marketed desktop publishing application. The task is to implement Adobe Pagemaker import filter for version 6 to 7 of the application. Basics of the format were already reverse engineered, additional efforts to reveal details will be required.
The filter will be based on librevenge library.