Developing an Export Converter

The Wolfram Language provides functions that allow developers to implement file format converters to be integrated with the the Wolfram Language Import and Export framework. You can implement format converters and use Export to export data from customized formats.

The interface between Export and low-level converter functions is specified by (under the context). In essence, tells the Import and Export framework how to make various function calls when exporting Wolfram Language expressions to a file format.

The Wolfram Language also includes source code for various converters. These are placed in the folders $InstallationDirectory/SystemFiles/Formats/format, where format is one of the following: BDF, DIF, MTP, SMILES, SurferGrid, TGF, or TLE. The registration code can be found in the files Import.m and/or Export.m, and the converter sources reside in the files Converter.m.

Format Registration

An Export format must first be registered. Note that, unlike registering an Import format, accepts only one function.

ImportExport`RegisterExport["format",function]register function to be used by the Export framework when exporting a file to the type format

Writing a Converter Function

For this example, imagine a file format that encodes an ASCII string by each character's ASCII code, with each code separated by a single space. A converter function for this format can be added to the Import and Export framework using .

Click for copyable input

When you use Export[file.ext,"str","MyExportFormat"], the framework passes both the output file name and the data, str, to the exporter, so an example exporter function can be written as below.

Click for copyable input

can now be used in Export just like any other file format.

Elements and Options for Converter Functions

Unlike Import, which always imports elements, Export can directly export an expression (as in the example above) or a list of rules in the form of .

Elements can be designated as options, meaning that they will always be passed to the converter functions along with all other options. Here is a trivial converter to illustrate the handling of elements and options.

Click for copyable input
Click for copyable input
Export directly with expressions.
Export via elements.
Export via elements, with options.
Export via elements, with elements registered as options.

Note that by specifying , the elements and are automatically passed as options to the exporters.