DrawView: Open Source Draw File Viewer Software
|Drawing by Hans Rijnen from the original Vector release - view full size screenshot (antialiased) or original file||
The full repertoire of objects - view
full size screenshot
(see also Vector displaying the same file on RiscOS, and object types annotated).
DrawView requires the Qt libraries (version 5.10 or later); Qt 5 should be included as standard in most Linux distros, or it is available from qt.io. The older Qt 3 or 4 will not work with the current version.
Qt is free for use and development of open-source applications (now on all patforms). It may in theory be possible to run DrawView under Windows or MacOS using the appropriate Qt package.
The latest version also uses the KDE Frameworks libraries (version 5.68 or later) to provide desktop integration. Frameworks 5 should also be included as standard in most Linux distros, or it is available from kde.org.
For reasonable text display, a good selection of scalable fonts should be installed. If not installed as standard, it may be possible to copy some useful fonts from a Windows machine (you should check the legality of this before doing so).
# Clone the source repository from GitHub git clone https://github.com/martenjj/drawview.git cd drawview git checkout frameworks5 # Generate the required configuration files and scripts mkdir BUILD cd BUILD cmake .. # Now follow the standard build steps. make make install # The applicatuon is now ready to run. drawview [file...]Along with the DrawView program this automatically installs desktop integration, MIME types etc.
Older versions of DrawView, in particular the Qt-only branch 'qt5', are built using GNU autotools. After cloning the Git repository or downloading and unpacking a source archive, change to the source directory and build and install the application by doing:
git checkout qt5 autoreconf -i ./configure [OPTIONS...] make sudo make install
There are some OPTIONS that it may be necessary to give to 'configure' in order to install desktop integration. Use 'configure --help' to list them.
See the INSTALL file within the source archive for extremely detailed installation instructions.
or, assuming that the desktop integration was installed, by running it from the application menu or by opening a RiscOS drawing in the file manager or web browser.
The options available from the application menus are:
|File||Open...||Open a file selection dialogue to load a drawing file.|
|Export...||Open a save dialogue to export the drawing in either PDF or PostScript format, at the current page size and orientation. At the moment only single page export is supported, but it may be possible to print multiple pages or at a different scale using another application (for example, Adobe Acrobat for PDF).|
|Dump||Decode and display the original Draw file structure on standard output.|
|Quit||Close the current window, and exit the application if there are no others.|
|View||Actual Size||Display the drawing at the original scale.|
|Zoom the drawing. This can also be done by holding down the CTRL key and scrolling with the mouse wheel. If the drawing is larger than the view then it can be moved around using the scroll bars or by dragging it with the left mouse button.|
|Zoom||Submenu to change the viewing zoom factor.|
|Clipping||Enable/disable view clipping. When on (the default), objects are clipped to the visible window while redrawing; this improves performance. When off, all of the objects are drawn regardless of whether they are visible or not; this slows down redrawing, but may give better results if the bounding boxes are not set correctly in the drawing file (some applications don't set them properly). If parts of objects appear to be missing or not drawn correctly, then try turning this option off.|
|Antialiasing||Enable/disable antialiasing (smoothing of edges) for paths, which improves the display especially of diagonal lines - compare an antialiased screenshot against the same without. This option is on by default, but can be very slow for complex files; if performance is a problem, antialiasing can be turned off.|
|Bounding boxes||Enable/disable display of object bounding boxes (green rectangles). Useful for checking whether the bounding boxes are set correctly in the original file.|
|Skeleton objects||Enable/disable display of skeleton objects (light blue rectangles).|
|Library Object||If an object library is being displayed, select the library object that is to be shown. Exporting or printing will also use this object.|
|Settings||Page Size...||Set the viewing page size and orientation. Normally this will be set automatically from the drawing bounding box, but if this is not set correctly or if the page size is non-standard then one can be selected here.|
|Configure...||This is not currently implemented because there aren't any preferences options.|
|Help||About...||Version information and contact details for the application.|
Some example files are installed in the directory prefix/share/drawview/examples; this will be at /usr/local/share/drawview/examples if using the default configuration.
The mapping between the original Acorn font names and available fonts is configurable. To extend or change this, edit the file prefix/share/drawview/fontmap; this will be at /usr/local/share/drawview/fontmap by default. See the comments at the top of the file for details.
Sprite images in "old" format (8bpp or less) can only be loaded if they are in a known screen mode - this is needed to find the depth and resolution of the sprite. To add details of a new mode, edit the file prefix/share/drawview/modes; this will be at /usr/local/share/drawview/modes by default.
|Plain Draw file||DrawFile (AFF)||Draw, many others|
|Draw file with extra data||DrawFile (AFF)||DrawPlus|
|Compressed Draw file||CmprDraw (C4B)||Chameleon, Poster, Vector|
|Compressed or uncompressed, with new objects and extra data||VecFile (C56)||Vector|
|Draw file with tagged objects||Poster (CC3)||Poster|
|Object library||DrawLib (810)||DrawPlus, Vector|
It may also be possible to load any other sort of file that uses the Draw format and tagged objects. The contents are detected by the type word at the start of the file; the file name and extension are not significant.
All of the standard Draw objects, and the additional ones provided by Vector, are supported and displayed. There are some features that it is not possible to reproduce exactly, due to limitations in the Qt library or the underlying platform, but the results obtained should be as close as it is possible to achieve. These are:
The DrawView source is now available from GitHub at https://github.com/martenjj/drawview. You can clone the Git repository or download a release archive from there.
The repository contains all that is necessary to build the application (apart from Qt and Frameworks), desktop integration support, and some example files.
|DrawView at GitHub|
There isn't much else to document at the moment, apart from the source itself which is fairly well commented. If there is any more technical information that you need or queries that you have, then please feel free to raise an issue on GitHub or mail me; I will try to answer to the best of my knowledge or assist in any other way possible.
Page by Jonathan Marten