From: Ariya H. <ar...@kd...> - 2006-06-06 01:45:45
|
---------- Forwarded message ---------- From: Ariya Hidayat <ari...@gm...> Date: Jun 5, 2006 3:38 PM Subject: SoC WPG conversion: progress as of June 5, 2006 To: de...@wp... Hi folks, Here's the status so far with my Summer of Code (WPG conversion filter). In the first week I spent time studying the WordPerfect Graphics file format. Seems that the format is not so difficult to understand. I tried to create few simple graphics in WordPerfect Office and examined the hexviewed version to get a feeling of the format. I also setup my working environment, intended to work as close as possible with WPO (for convenience, as I'd need to create/edit/modify/view lots of WPG files). First, I was using MinGW so that I can work in Win32. Later on I was succesful at setting up a virtualized Windows NT + WPO using QEMU inside my SUSE box. This is better as Linux is my preferred development platform. As starting point, I continue the development of libwpg with focus on WPG2 format. As my mentor (Fridrich Strba) has expressed, removing libgsf dependency is a good jump start so I did this. I also implemented few important WPG records, among others for handling pen and brush settings as well as basic shapes such as rectangle, polyline and polygon. Difficulties come from the object characterization data, which specifies e.g. the object transformation. Here the documentation is not clear and sometimes also has errors, but I'm working on it. To test the parsing routine, I also adjusted the listener class of WPG. Typically, one would create a new class derived from this listener and then e.g. implemented SVG output. I modified the listener to fit better the common painting model (as used in PostScript/Cairo/Qt) so that in the future it should be easy to create e.g. a PDF output. The wpg2svg conversion tool also got some love. I already implemented stroke color, opacity, dasharray, width. Along with some basic shapes such as line, polyline, rectangle (even with roundness), I can already view some WPG files converted to SVG using Inkscape and Karbon. Unfortunately so far I still work off the CVS (of libwpg). My code is still a mess and breaks WPG1 support. Of course, merging and syncing back the code is on my radar and I hope I can do this as soon as possible. Next on my plan is: - complete the brush properties - object characterization data, necessary for correct transformation - adjust WPG1 code with the new listener's painting model Regards, Ariya Hidayat |