Kabeja
NO LONGER MANTAINED! Kabeja is a Java library for parsing, processing and converting Autodesk's DXF format. You can use Kabeja from the CommandLine or embed into your application. All parsed data are accessible with the DOM-like API. The processing system allows you to process, filter (e.g. XSLT) and convert DXF drafts to different output formats (SVG, JPEG, PNG, TIFF, PDF, XML).
Install / Use
/learn @fuzziness/KabejaREADME
THIS REPOSITORY IS NO LONGER MANTAINED!
Kabeja is a small library for parsing DXF-Files and converting this to SVG. It is licensed under the Apache Software License 2.0.
Limitation:
There are not all Entities of DXF supported yet. Text-Entities generate problems too.
Supported:
*Arc *Attrib *Polyline *Circle *Line *Blocks/Insert *Text *MText *LWPolyline *Solid *Trace *Ellipse *Dimension *Image *Leader *XLine *Ray *Hatch *Spline *MLine
Planned:
- Tolerance
You can use Kabeja from CLI (Command Line Interface) or embed in your application.
GUI:
Windows: * double-click "kabeja.exe"
Linux: * sh kabeja.sh
or:
* chmod a=rx kabeja.sh (only ones)
* ./kabeja.sh
Other: * java -jar launcher.jar
CLI:
in the Kabeja-folder try:
-
Help and pipeline list
java -jar launcher.jar --help
-
Convert to svg
java -jar launcher.jar -nogui -pipeline svg myfile.dxf result.svg
-
Convert to pdf|jpeg|png|...
java -jar launcher.jar -nogui -pipeline <pdf|jpeg|png> myfile.dxf
Normally Java uses 64 MB of your memory, to setup more use the following commandline switch:
java -Xmx256m -jar .....
GUI-Viewer:
in the 'lib'-folder try:
java -jar kabeja-svgview.jar
Cocoon 2.1 (XML-Publishing-Framework http://cocoon.apache.org/2.1):
Copy the 'kabeja.jar' and 'kabeja-svg2dxf-cocoon.jar' to your WEB-INF/lib-folder of your Cocoon-Webapplication. Then you can use Kabeja as Generator like:
in your sitemap/subsitemap:
snippet:
map:components
.....
<map:generators default="file">
<map:generator name="dxf2svg" src="org.kabeja.cocoon.generation.DXF2SVGGenerator"/>
</map:generators>
.... map:pipelines
<map:match pattern="dxf/*.svg">
<map:generate type="dxf2svg" src="dxf/{1}.dxf"/>
...
<!-- transform things you need -->
<map:serialize type="xml"/>
</map:match>
</map:pipeline>
....
</map:pipelines>
Note: DXF-drafts often real large drafts, so the SVGDocument will consume a lot of memory. The Generator is Cacheable so the first run will take more time.
Feedback and Help
Any help and feedback are greatly appreciated.
Mail: simon.mieth@gmx.de
