10 XML C/C++ Export Options

Options are parameters affecting the behavior of an export or transformation. This chapter presents C/C++ options available to the developer when using the XML Export engine.

While default values are provided, users are encouraged to set all options for a number of reasons. In some cases, the default values were chosen to provide backwards compatibility. In other cases, the default values were chosen arbitrarily from a range of possibilities.

Options may be Local, in which case they only affect the handle for which they are set, or Global, in which case they automatically affect all handles associated with the hDoc and must be set before the call to DAOpenDocument.

While default values are provided, users are encouraged to set all options for a number of reasons. In some cases, the default values were chosen to provide backwards compatibility. In other cases, the default values were chosen arbitrarily from a range of possibilities.

The following types of options are covered:

10.1 Character Mapping

This section pertains to character mapping options.

10.1.1 SCCOPT_DEFAULTINPUTCHARSET

This option is used in cases where Outside In cannot determine the character set used to encode the text of an input file. When all other means of determining the file's character set are exhausted, Outside In will assume that an input document is encoded in the character set specified by this option. This is most often used when reading plain-text files, but may also be used when reading HTML or PDF files. The possible character sets are listed in charsets.h.

When "extended test for text" is enabled (see SCCOPT_FIFLAGS), this option will still apply to plain-text input files that are not identified as EBCDIC or Unicode.

This option supersedes the SCCOPT_FALLBACKFORMAT option for selecting the character set assumed for plain-text files. For backwards compatibility, use of deprecated character-set -related values is still currently supported for SCCOPT_FALLBACKFORMAT, though internally such values will be translated into equivalent values for the SCCOPT_DEFAULTINPUTCHARSET. As a result, if an application were to set both options, the last such value set for either option would be the value that takes effect.

Handle Types

NULL, VTHDOC

Scope

Global

Data Type

VTDWORD

Default

  • CS_SYSTEMDEFAULT: Query the operating system.

Data

The data types are listed in charsets.h.

10.1.2 SCCOPT_UNMAPPABLECHAR

This option selects the character used when a character is not a valid Unicode character, or does not conform to the XML specification for valid characters. This option takes the Unicode value for the replacement character. It is left to the user to make sure that the selected replacement character is available in the output character set.

Handle Types

VTHDOC

Scope

Local

Data Type

VTWORD

Data

The Unicode value for the character to use.

Default

  • 0xfffd

10.2 Output

This information pertains to output options.

10.2.1 SCCOPT_RENDERING_PREFER_OIT

Note:

This option is valid on 32-bit Linux (Red Hat and Suse), Linux x86-64, Solaris Sparc, IBM AIX 32-bit, and HP-UX RISC 32-bit platforms.

When this option is set to TRUE, the technology will attempt to use its internal graphics code to render fonts and graphics. When set to FALSE, the technology will render images using the operating system's native graphics subsystem (X11 on UNIX/Linux platforms). Note that this option only works when at least one of the appropriate output solutions is present. For example, if the UNIX $DISPLAY variable does not point to a valid X Server, but the OSGD and/or WV_GD modules required for the Outside In output solution exist, Outside In will default to the Outside In rendering code. The option will fail if neither of these output solutions is present.

Note:

It is important for the system to be able to locate useable fonts when this option is set to TRUE. Only TrueType fonts (*.ttf or *.ttc files) are currently supported. To ensure that the system can find them, make sure that the environment variable GDFONTPATH includes one or more paths to these files. If the variable GDFONTPATH can't be found, the current directory is used. If fonts are called for and cannot be found, XML Export will exit with an error. Oracle does not provide fonts with any Outside In product.

Handle Types

NULL, VTHDOC

Scope

Global

Data Type

VTBOOL

Data

One of the following values:

  • TRUE: Use the technology's internal graphics rendering code to produce bitmap output files whenever possible.

  • FALSE: Use the operating system's native graphics subsystem.

Default

FALSE

10.3 Input Handling

This section pertains to input handling options.

10.3.1 SCCOPT_EXTRACTXMPMETADATA

Adobe's Extensible Metadata Platform (XMP) is a labeling technology that allows you to embed data about a file, known as metadata, into the file itself. This option enables the XMP feature, which does not interpret the XMP metadata, but passes it straight through without any interpretation. This option will be ignored if the SCCOPT_PARSEXMPMETADATA option is enabled.

Handle Types

VTHDOC

Scope

Local (was Global prior to release 8.2.2)

Data Type

VTBOOL

Data

  • TRUE: This setting enables XMP extraction.

  • FALSE: This setting disables XMP extraction.

Default

  • FALSE

10.3.2 SCCOPT_FALLBACKFORMAT

This option controls how files are handled when their specific application type cannot be determined. This normally affects all plain-text files, because plain-text files are generally identified by process of elimination, for example, when a file isn't identified as having been created by a known application, it is treated as a plain-text file.

This option must be set for an hDoc before any subhandle has been created for that hDoc.

A number of values that were formerly allowed for this option have been deprecated. Specifically, the values that selected specific plain-text character sets are no longer to be used. Instead, applications should use the SCCOPT_DEFAULTINPUTCHARSET option for such functionality.

Handle Types

NULL, VTHDOC

Scope

Global

Data Type

VTDWORD

Data

The high VTWORD of this value is reserved and should be set to 0, and the low VTWORD must have one of the following values:

  • FI_TEXT: Unidentified file types will be treated as text files.

  • FI_NONE: Outside In will not attempt to process files whose type cannot be identified. This will include text files. When this option is selected, an attempt to process a file of unidentified type will cause Outside In to return an error value of DAERR_FILTERNOTAVAIL (or SCCERR_NOFILTER).

Default

  • FI_TEXT

10.3.3 SCCOPT_FIFLAGS

This option affects how an input file's internal format (application type) is identified when the file is first opened by the Outside In technology. When the extended test flag is in effect, and an input file is identified as being either 7-bit ASCII, EBCDIC, or Unicode, the file's contents will be interpreted as such by the export process.

The extended test is optional because it requires extra processing and cannot guarantee complete accuracy (which would require the inspection of every single byte in a file to eliminate false positives).

Handle Types

NULL, VTHDOC

Scope

Global

Data Type

VTDWORD

Data

One of the following values:

  • SCCUT_FI_NORMAL: This is the default value. When this is set, standard file identification behavior occurs.

  • SCCUT_FI_EXTENDEDTEST: If set, the File Identification code will run an extended test on all files that are not identified.

Default

  • SCCUT_FI_NORMAL

10.3.4 SCCOPT_FORMATFLAGS

This option allows the developer to set flags that enable options that span multiple export products.

Handle Types

VTHDOC

Scope

Local

Data Type

VTDWORD

Data

  • SCCOPT_FLAGS_ISODATETIMES: When this flag is set, all Date and Time values are converted to the ISO 8601 standard. This conversion can only be performed using dates that are stored as numeric data within the original file.

  • SCCOPT_FLAGS_STRICTFILEACCESS: When an embedded file or URL can't be opened with the full path, OIT will sometimes try and open the referenced file from other locations, including the current directory. When this flag is set, it will prevent OIT from trying to open the file from any location other than the fully qualified path or URL.

Default

0: All flags turned off

10.3.5 SCCOPT_SYSTEMFLAGS

This option controls a number of miscellaneous interactions between the developer and the Outside In Technology.

Handle Type

VTHDOC

Scope

Local

Data Type

VTDWORD

Data

  • SCCVW_SYSTEM_UNICODE: This flag causes the strings in SCCDATREENODE to be returned in Unicode.

Default

0

10.3.6 SCCOPT_IGNORE_PASSWORD

This option can disable the password verification of files where the contents can be processed without validation of the password. If this option is not set, the filter should prompt for a password if it handles password-protected files.

As of Release 8.4.0, only the PST and MDB Filters support this option.

Scope

Global

Data Type

VTBOOL

Data

  • TRUE: Ignore validation of the password

  • FALSE: Prompt for the password

Default

FALSE

10.3.7 SCCOPT_LOTUSNOTESDIRECTORY

This option allows the developer to specify the location of a Lotus Notes or Domino installation for use by the NSF filter. A valid Lotus installation directory must contain the file nnotes.dll.

Note:

Please see NSF Support on Win x86-32 or Win x86-64 or NSF Support on Linux x86-32 or Solaris Sparc 32.

Handle Types

NULL

Scope

Global

Data Type

VTLPBYTE

Data

A path to the Lotus Notes directory.

Default

If this option isn't set, then OIT will first attempt to load the Lotus library according to the operating system's PATH environment variable, and then attempt to find and load the Lotus library as indicated in HKEY_CLASSES_ROOT\Notes.Link.

10.3.8 SCCOPT_PARSEXMPMETADATA

Adobe's Extensible Metadata Platform (XMP) is a labeling technology that allows you to embed data about a file, known as metadata, into the file itself. This option enables parsing of the XMP data into normal OIT document properties. Enabling this option may cause the loss of some regular data in premium graphics filters (such as Postscript), but won't affect most formats (such as PDF).

Handle Types

VTHDOC

Scope

Local

Data Type

VTBOOL

Data

  • TRUE: This setting enables parsing XMP.

  • FALSE: This setting disables parsing XMP.

Default

FALSE

10.3.9 SCCOPT_PDF_FILTER_REORDER_BIDI

This option controls whether or not the PDF filter will attempt to reorder bidirectional text runs so that the output is in standard logical order as used by the Unicode 2.0 and later specification. This additional processing will result in slower filter performance according to the amount of bidirectional data in the file.

Handle Types

VTHDOC, NULL

Scope

Global

Data Type

VTDWORD

Data

  • SCCUT_FILTER_STANDARD_BIDI

  • SCCUT_FILTER_REORDERED_BIDI

Default

SCCUT_FILTER_STANDARD_BIDI

10.3.10 SCCOPT_PROCESS_OLE_EMBEDDINGS

Microsoft Powerpoint versions from 1997 through 2003 had the capability to embed OLE documents in the Powerpoint files. This option controls which embeddings are to be processed as native (OLE) documents and which are processed using the alternate graphic.

Note:

The Microsoft Powerpoint application sometimes does embed known Microsoft OLE embeddings (such as Visio, Project) as an "Unknown" type. To process these embeddings, the SCCOPT_PROCESS_OLEEMBED_ALL option is required. Post Office-2003 products such as Office 2007 embeddings also fall into this category.

Handle Types

VTHDOC, NULL

Scope

Global

Data Type

VTWORD

Data

  • SCCOPT_PROCESS_OLEEMBED_ALL : Process all embeddings in the file

  • SCCOPT_PROCESS_OLEEMBED_NONE : Process none of the embeddings in the file

  • SCCOPT_PROCESS_OLEEMBED_STANDARD (default) : Process embeddings that are known standard embeddings. These include Office 2003 versions of Word, Excel, Visio etc.

Default

SCCOPT_PROCESS_OLEEMBED_STANDARD

10.3.11 SCCOPT_TIMEZONE

This option allows the user to define an offset to GMT that will be applied during date formatting, allowing date values to be displayed in a selectable time zone. This option affects the formatting of numbers that have been defined as date values. This option will not affect dates that are stored as text.

Note:

Daylight savings is not supported. The sent time in msg files when viewed in Outlook can be an hour different from the time sent when an image of the msg file is created.

Handle Types

NULL, VTHDOC

Scope

Global

Data Type

VTLONG

Data

Integer parameter from -96 to 96, representing 15-minute offsets from GMT. To query the operating system for the time zone set on the machine, specify SCC_TIMEZONE_USENATIVE.

Default

  • 0: GMT time

10.3.12 SCCOPT_HTML_COND_COMMENT_MODE

Some HTML includes a special type of comment that will be read by particular versions of browsers or other products. This option allows you to control which of those comments are included in the output.

Handle Type

VTHDOC

Scope

Local

Data Type

VTDWORD

Data

  • One or more of the following values OR-ed together:

  • HTML_COND_COMMENT_NONE: Don't output any conditional comments. Note: setting any other flag will negate this.

  • HTML_COND_COMMENT_IE5: include the IE 5 comments

  • HTML_COND_COMMENT_IE6: include the IE 6 comments

  • HTML_COND_COMMENT_IE7: include the IE 7 comments

  • HTML_COND_COMMENT_IE8: include the IE 8 comments

  • HTML_COND_COMMENT_IE9: include the IE 9 comments

  • HTML_COND_COMMENT_ALL: include all conditional comments including the versions listed above and any other versions that might be in the HTML.

Default

HTML_COND_COMMENT_NONE

10.3.13 SCCOPT_ARCFULLPATH

In the Viewer and rendering products, this option tells the archive display engine to show the full path to a node in the szNode field in response to a SCCVW_GETTREENODE message. It also causes the name fields in DAGetTreeRecord and DAGetObjectInfo to contain the full path instead of just the archive node name.

Data Type

VTBOOL

Data

  • TRUE: Display the full path.

  • FALSE: Do not display the path.

Default

FALSE

10.3.14 SCCOPT_STROKE_TEXT

This option is used to stroke out (display as graphical primitives) text in an AutoCAD file. Setting this option to FALSE would improve performance, but the visual fidelity may be compromised.

  • If the export for the conversion is text only, text is never stroked out.

  • If the export is not text only, and the drawing is perspective, text will always be stroked out (regardless of this option). This is due to the fact that in non-text only situations visual fidelity is of importance, and handling of textual objects in perspective drawings is more accurate with stroked out text. If the conversion is non-text only and the drawing is not perspective, this option determines if text should be stroked.

Note that when this option is TRUE, some special characters appear as asterisks or question marks due to limited support of characters for stroking out text.

Handle Types

VTHDOC, VTHEXPORT

Scope

Local

Data Type

VTBOOL

Default

TRUE

10.3.15 SCCOPT_PDF_FILTER_MAX_EMBEDDED_OBJECTS

PDF files sometimes have a very large number of embedded objects. This option allows the user to limit the number of embedded objects that are produced in a PDF file. Setting this option to 0 produces an unlimited number of embedded objects.

Handle Types

VTHDOC

Scope

Local

Data Type

VTDWORD

Data

The maximum number of embedded objects to produce in PDF output.

Default

0

10.3.16 SCCOPT_PDF_FILTER_MAX_VECTOR_PATHS

PDF files sometimes have a very large number of vector paths. This option allows the user to limit the number of vector paths that are produced in a PDF file. Setting this option to 0 produces an unlimited amount of vector paths.

Handle Types

VTHDOC

Scope

Local

Data Type

VTDWORD

Data

The maximum number of vector paths to produce in PDF output.

Default

0

10.3.17 SCCOPT_PDF_FILTER_WORD_DELIM_FRACTION

This option controls the spacing threshold in PDF input documents. Most PDF documents do not have an explicit character denoting a word break. The PDF filter calculates the distance between two characters to determine if they are part of the same word or if there should be a word break inserted. The space between characters is compared to the length of the space character in the current font multiplied by this fraction. If the space between characters is larger, then a word break character is inserted into the text stream. Otherwise, the characters are considered to be part of the same word and no word break is inserted.

Handle Types

NULL, VTHDOC

Scope

Local

Data Type

VTFLOAT

Data

A fraction representing the percentage of the space character used to trigger a word break. Valid values are 0<value<=2.

Default

0.85

10.3.18 SCCOPT_GENERATEEXCELREVISIONS

This option enables you to extract tracked changes from Excel. Extracted content shall include location (worksheet, row, column), author, date, and time. Note that Excel has an option to display the changes inline or on a different sheet. Either case should be extracted along with where the comments are displayed in the Excel file (inline or separate sheet).

Handle Types

VTHDOC

Scope

Global

Data Type

VTBOOL

Data

  • TRUE: The setting enables generating Excel revision data

  • FALSE: This setting disables generating Excel revision data

Default

FALSE

10.4 Compression

This section discusses compression options.

10.4.1 SCCOPT_FILTERJPG

This option can disable access to any files using JPEG compression, such as JPG graphic files or TIFF files using JPEG compression, or files with embedded JPEG graphics. Attempts to read or write such files when this option is enabled will fail and return the error SCCERR_UNSUPPORTEDCOMPRESSION if the entire file is JPEG compressed, and grey boxes for embedded JPEG-compressed graphics.

The following is a list of file types affected when this option is disabled:

  • JPG files

  • Postscript files containing JPG images

  • PDFs containing JPEG images

Note that the setting for this option overrides the requested output graphic format when there is a conflict.

Handle Types

VTHDOC, HEXPORT

Scope

Global

Data Type

VTDWORD

Data

  • SCCVW_FILTER_JPG_ENABLED: Allow access to files that use JPEG compression

  • SCCVW_FILTER_JPG_DISABLED: Do not allow access to files that use JPEG compression

Default

SCCVW_FILTER_JPG_ENABLED

10.4.2 SCCOPT_FILTERLZW

This option can disable access to any files using Lempel-Ziv-Welch (LZW) compression, such as .GIF files, .ZIP files or self-extracting archive (.EXE) files containing "shrunk" files. Attempts to read or write such files when this option is enabled will fail and return the error SCCERR_UNSUPPORTEDCOMPRESSION if the entire file is LZW compressed, and grey boxes for embedded LZW-compressed graphics.

The following is a list of file types affected when this option is disabled:

  • GIF files

  • TIF files using LZW compression

  • PDF files that use internal LZW compression

  • TAZ and TAR archives containing files that are identified as FI_UNIXCOMP

  • ZIP and self-extracting archive (.EXE) files containing "shrunk" files

  • Postscript files using LZW compression

    Note:

    Although this option can disable access to files in ZIP or EXE archives stored using LZW compression, any files in such archives that were stored using any other form of compression will still be accessible. The setting for this option overrides the requested output graphic format when there is a conflict.

Handle Types

VTHDOC, HEXPORT

Scope

Global

Data Type

VTDWORD

Data

  • SCCVW_FILTER_LZW_ENABLED: LZW compressed files will be read and written normally.

  • SCCVW_FILTER_LZW_DISABLED: LZW compressed files will not be read or written.

Default

SCCVW_FILTER_LZW_ENABLED

10.5 Graphics

This information pertains to graphics options.

10.5.1 SCCOPT_ACCEPT_ALT_GRAPHICS

This option enables an optimization in XML Export's graphics output when exporting embedded graphics from an input document. When this option is set to TRUE and the input document contains embedded graphics that are already in one of our supported output formats, they will be copied to output files rather than converted to the selected output format specified by the SCCOPT_GRAPHIC_TYPE option.

For example, if this option is set to TRUE and the selected output graphics type is GIF, an input document's embedded JPEG graphic will be copied to a JPEG output file rather than being converted to the GIF format. The same behavior applies to all of XML Export's supported graphics output formats (currently GIF, JPEG, and PNG).

If this option is set to FALSE, all graphics output will be in the format specified by the SCCOPT_GRAPHIC_TYPE option.

Note:

When using this option, JPEG files will be transferred directly to their output file location, without being filtered. This presents the possibility that any JPEG viruses in the file can be transferred to that location, as well.

Handle Types

VTHDOC, VTHEXPORT

Scope

Local

Data Type

VTBOOL

Data

  • TRUE: FI_GIF, FI_JPEGFIF, and FI_PNG embeddings will be extracted, not converted. All other embeddings will be converted to the format specified by SCCOPT_GRAPHIC_TYPE. If graphicType is set to FI_NONE, no embeddings will be extracted or converted.

  • FALSE: All embeddings will be converted to the format specified by SCCOPT_GRAPHIC_TYPE. Embeddings that are already in that format will be extracted, not converted. If graphicType is set to FI_NONE, no embeddings will be extracted or converted.

Default

FALSE

10.5.2 SCCOPT_GIF_INTERLACED

This option allows the developer to specify interlaced or non-interlaced GIF output. Interlaced GIFs are useful when graphics are to be downloaded over slow Internet connections. They allow the browser to begin to render a low-resolution view of the graphic quickly and then increase the quality of the image as it is received. There is no real penalty for using interlaced graphics.

This option is only valid if the SCCOPT_GRAPHIC_TYPE option is set to FI_GIF.

Handle Types

VTHDOC, VTHEXPORT

Scope

Local

Data Type

VTBOOL

Data

One of the following values:

  • TRUE: Produce interlaced GIFs.

  • FALSE: Produce non-interlaced GIFs.

Default

TRUE

10.5.3 SCCOPT_GRAPHIC_HEIGHTLIMIT

This is an advanced option that casual users of this technology may safely ignore. It allows a hard limit to be set for how tall in pixels an exported graphic may be. Any images taller than this limit will be resized to match the limit. It should be noted that regardless whether the SCCOPT_GRAPHIC_WIDTHLIMIT option is set or not, any resized images will preserve their original aspect ratio.

Handle Types

VTHDOC, VTHEXPORT

Scope

Local

Data Type

VTDWORD

Data

The maximum height of the output graphic in pixels. A value of zero is equivalent to SCCGRAPHIC_NOLIMIT, which causes this option to be ignored.

Default

  • SCCGRAPHIC_NOLIMIT: No absolute height limit specified.

10.5.4 SCCOPT_GRAPHIC_OUTPUTDPI

This is an advanced option that casual users of this technology may safely ignore.

This option allows the user to specify the output graphics device's resolution in DPI and only applies to images whose size is specified in physical units (in/cm). For example, consider a 1" square, 100 DPI graphic that is to be rendered on a 50 DPI device (SCCOPT_GRAPHIC_OUTPUTDPI is set to 50). In this case, the size of the resulting JPEG, GIF, or PNG will be 50 x 50 pixels.

In addition, the special #define of SCCGRAPHIC_MAINTAIN_IMAGE_DPI, which is defined as 0, can be used to suppress any dimensional changes to an image. In other words, a 1" square, 100 DPI graphic will be converted to an image that is 100 x 100 pixels in size. This value indicates that the DPI of the output device is not important. It extracts the maximum resolution from the input image with the smallest exported image size.

Note:

Setting this option to SCCGRAPHIC_MAINTAIN_IMAGE_DPI may result in the creation of extremely large images. Be aware that there may be limitations in the system running this technology that could result in undesirably large bandwidth consumption or an error message. Additionally, an out of memory error message will be generated if system memory is insufficient to handle a particularly large image.

Also note that the SCCGRAPHIC_MAINTAIN_IMAGE_DPI setting will force the technology to use the DPI settings already present in raster images, but will use the current screen resolution as the DPI setting for any other type of input file.

Handle Types

VTHDOC, VTHEXPORT

Scope

Local

Data Type

VTDWORD

Data

The DPI to use when exporting graphic images. The maximum value allowed is SCCGRAPHIC_MAX_SANE_BITMAP_DPI, which is currently defined to be 2400 DPI.

Default

  • SCCGRAPHIC_DEFAULT_OUTPUT_DPI: Currently defined to be 96 dots per inch.

10.5.5 SCCOPT_GRAPHIC_SIZELIMIT

This option is used to set the maximum size of the exported graphic in pixels. It may be used to prevent inordinately large graphics from being converted to equally cumbersome output files, thus preventing bandwidth waste.

SCCOPT_GRAPHIC_SIZELIMIT takes precedence over all other options and settings that affect the size of a converted graphic.

Handle Types

VTHDOC, VTHEXPORT

Scope

Local

Data Type

VTDWORD

Data

The total number of pixels in the output graphic. A value of zero ("0"), which is equivalent to SCCGRAPHIC_NOLIMIT, causes this option to be ignored.

Default

  • SCCGRAPHIC_NOLIMIT: Option is turned off.

10.5.6 SCCOPT_GRAPHIC_SIZEMETHOD

This option determines the method used to size graphics. The developer can choose among three methods, each of which involves some degree of trade off between the quality of the resulting image and speed of conversion.

Using the quick sizing option results in the fastest conversion of color graphics, though the quality of the converted graphic will be somewhat degraded. The smooth sizing option results in a more accurate representation of the original graphic, as it uses anti-aliasing. Antialiased images may appear smoother and can be easier to read, but rendering when this option is set will require additional processing time. The grayscale only option also uses antialiasing, but only for grayscale graphics, and the quick sizing option for any color graphics.

Note:

The smooth sizing option does not work on images which have a width or height of more than 4096 pixels.

Handle Types

VTHDOC, VTHEXPORT

Scope

Local

Data Type

VTDWORD

Data

One of the following values:

  • SCCGRAPHIC_QUICKSIZING: Resize without antialiasing

  • SCCGRAPHIC_SMOOTHSIZING: Resize using antialiasing

  • SCCGRAPHIC_SMOOTHGRAYSCALESIZING: Resize using antialiasing for grayscale graphics only (no antialiasing for color graphics)

Default

SCCGRAPHIC_SMOOTHSIZING

10.5.7 SCCOPT_GRAPHIC_TYPE

This option allows the developer to specify the format of the graphics produced by the technology when it converts document embeddings.

When setting this option, remember that the JPEG file format does not support transparency.

Though the GIF file format supports transparency, it is limited to using only one of its 256 available colors to represent a transparent pixel ("index transparency").

PNG supports many types of transparency. The PNG files written by XML Export are created so that various levels of transparency are possible for each pixel. This is achieved through the implementation of an 8-bit "alpha channel."

There is a special optimization that XML Export can make when this option is set to FI_NONE. Some of the Outside In Viewer Technology's import filters can be optimized to ignore certain types of graphics. To take advantage of this optimization, the option must be set before EXOpenExport is called.

Note:

SCCOPT_GRAPHIC_TYPE = FI_NONE must be set (via DASetOption) before the call to EXOpenExport. Otherwise, the SCCUT_FILTEROPTIMIZEDFORTEXT speed enhancement for the PDF filter is not set. This will result in slower exports of PDFs when graphic output is not required.

Note:

The settings for options in Compression may force an override of the value for this option.

Handle Types

VTHDOC, VTHEXPORT

Scope

Local

Data Type

VTDWORD

Data

One of the following values:

  • FI_GIF: GIF graphics

  • FI_JPEGFIF: JPEG graphics

  • FI_PNG: PNG graphics

  • FI_NONE: Graphic conversion will be turned off

Default

FI_JPEGFIF

10.5.8 SCCOPT_GRAPHIC_WIDTHLIMIT

This is an advanced option that casual users of this technology may safely ignore. It allows a hard limit to be set for how wide in pixels an exported graphic may be. Any images wider than this limit will be resized to match the limit. It should be noted that regardless whether the SCCOPT_GRAPHIC_HEIGHTLIMIT option is set or not, any resized images will preserve their original aspect ratio.

Handle Types

VTHDOC, VTHEXPORT

Scope

Local

Data Type

VTDWORD

Data

The maximum width of the output graphic in pixels. A value of zero is equivalent to SCCGRAPHIC_NOLIMIT, which causes this option to be ignored.

Default

  • SCCGRAPHIC_NOLIMIT: No absolute width limit specified.

10.5.9 SCCOPT_JPEG_QUALITY

This option allows the developer to specify the lossyness of JPEG compression. The option is only valid if the SCCOPT_GRAPHIC_TYPE option is set to FI_JPEGFIF.

Handle Types

VTHDOC, VTHEXPORT

Scope

Local

Data Type

VTDWORD

Data

A value from 1 to 100, with 100 being the highest quality but the least compression, and 1 being the lowest quality but the most compression.

Default

100

10.5.10 SCCOPT_RENDER_ENABLEALPHABLENDING

This option allows the user to enable alpha-channel blending (transparency) in rendering vector images when using an X-Windows output solution. This may improve fidelity on documents that use these transparent images, but will result in performance degradation. This option does not affect Microsoft Windows or Unix implementations where SCCOPT_RENDERING_PREFER_OIT is set to TRUE.

Handle Types

VTHDOC, VTHEXPORT

Scope

Local

Data Type

VTBOOL

Default

False

10.6 Callbacks

This information pertains to callback options.

10.6.1 SCCOPT_EX_CALLBACKS

This is an advanced option that casual users of XML Export may ignore.

This option is used to disable callbacks being made from XML Export. Callbacks that are disabled will behave as if they were made and the developer had returned SCCERR_NOTHANDLED.

The option takes a VTDWORD field of flags. When the flag is set, the callback is enabled. By default, all callbacks are enabled. You can activate multiple callbacks by bitwise OR-ing them together. You can also disable multiple callbacks by bitwise &-ing the SCCEX_CALLBACKFLAG_ALLENABLED value with the one's complement of the corresponding callback flags. The following #defines are to be used for enabling the various callbacks:

Flag Associated Callbacks

SCCEX_CALLBACKFLAG_CREATENEWFILE

EX_CALLBACK_ID_CREATENEWFILE

SCCEX_CALLBACKFLAG_NEWFILEINFO

EX_CALLBACK_ID_NEWFILEINFO

In addition, the following two special values are available:

  • SCCEX_CALLBACKFLAG_ALLDISABLED: Disables the receipt of all callbacks. Additionally, bitwise OR-ing this value with one or more flags enables the corresponding callbacks.

  • SCCEX_CALLBACKFLAG_ALLENABLED: Enables the receipt of all callbacks. Additionally, bitwise &-ing this value with the one's complement of one or more flags disables the corresponding callbacks. For example, SCCEX_CALLBACKFLAG_ALLENABLED& (~SCCEX_CALLBACKFLAG_CREATENEWFILE) disables the CREATENEWFILE callbacks, but enables all others.

Handle Types

VTHDOC

Scope

Local

Data Type

VTDWORD

Data

One or more of the valid flags, bitwise OR-ed together

Default

  • SCCEX_CALLBACKFLAG_ALLENABLED: All callbacks are available to the developer.

10.6.2 SCCOPT_EX_UNICODECALLBACKSTR

This option determines the format of strings used in the callback functions. For those structures that contain a field of type BYTE or LPBYTE, a comparable structure has been added which has a similar field of type WORD or LPWORD. These structures will have the same name as the original structure, with the addition of a "W" at the end.

When this option is set to TRUE, any time a callback uses a structure with a string, it will use the new structure. Also, any strings that the callback function returns will be expected to follow the same guidelines. If the option is set to FALSE, all callbacks will use single-byte character strings.

For example, if this option is set to TRUE, and the EX_CALLBACK_ID_CREATENEWFILE callback is called, the pExportData parameter to the callback will point to an EXURLFILEIOCALLBACKDATAW structure. If the option is set to FALSE, the pCommandOrInfoData parameter will point to an EXURLFILEIOCALLBACKDATA structure.

Note:

This option should be set before EXOpenExport is called.

Handle Types

VTHDOC

Scope

Local

Data Type

VTBOOL

Data

One of the following values:

  • TRUE: Use Unicode strings in callbacks.

  • FALSE: Do not use Unicode strings in callbacks.

Default

FALSE

10.7 XML

This information pertains to XML options.

10.7.1 SCCOPT_CCFLEX_FORMATOPTIONS

This option is a set of flags that can be set to affect the output.

Handle Types

VTHDOC

Scope

Local

Data Type

DWORD

Data

The following are the available flags for this option:

  • CCFLEX_FORMATOPTIONS_DELIMITERS: Often, files have individual characters that are placed at specific draw locations. Consequently, the Flexiondoc converter produces individual draw_text characters without any indication of word boundaries. This flag forces the Flexiondoc converter to attempt to determine where words and lines end. The input filters indicate these positions by producing a WORD_DELIMITER for word endings, and a DELIMITER for line endings. These delimiters are passed along in the Flexiondoc output to assist the user in reconstructing words and lines.

  • CCFLEX_FORMATOPTIONS_OPTIMIZESECTIONS: Use wp.section elements to delineate column references.

  • CCFLEX_FORMATOPTIONS_FLATTENSTYLES: Flatten styles to eliminate the need to process the "based-on" attribute. By turning on this option, paragraph style should all be fully attributed. Character styles can't be fullly attributed, that is, they won't always be completely flattened.

  • SCCOPT_FLAGS_ALLISODATETIMES: Use ISO 8601 formatting for all date and date/time values.

  • CCFLEX_FORMATOPTIONS_PROCESSARCHIVESUBDOCS: Process all archive sub-objects and put the output in the main Flexiondoc output

  • CCFLEX_FORMATOPTIONS_PROCESSATTACHMENTSUBDOCS: Process all attachments and put the output in the main Flexiondoc output

  • CCFLEX_FORMATOPTIONS_PROCESSEMBEDDINGSUBDOCS: Process all embeddings and put the output in the main Flexiondoc output

  • CCFLEX_FORMATOPTIONS_REMOVEFONTGROUPS: Replace font groups with references to individual fonts.

  • CCFLEX_FORMATOPTIONS_INCLUDETEXTOFFSETS: Include text_offset attribute on tx.p and tx.r elements.

  • CCFLEX_FORMATOPTIONS_SEPARATESTYLETABLES: Enabling this flag will cause the style_tables subtree to be streamed to a separate output unit. This item is deprecated.

  • CCFLEX_FORMATOPTIONS_USEFULLFILEPATHS: Locators for externalized embeddings will contain full, absolute path names.

  • CCFLEX_FORMATOPTIONS_BITMAPASBITMAP: dr.image objects are converted to a graphic file and the resulting file is referenced by the locator child of the dr.image.

  • CCFLEX_FORMATOPTIONS_CHARTASBITMAP: ch.chart objects are converted to a graphic file and the resulting file is referenced by the locator child of the ch.chart.

  • CCFLEX_FORMATOPTIONS_PRESENTATIONASBITMAP: pr.slide objects are converted to a graphic file and the resulting file is referenced by the locator child of the pr.slide.

  • CCFLEX_FORMATOPTIONS_VECTORASBITMAP: dr.drawing objects are converted to a graphic file and the resulting file is referenced by the locator child of the dr.drawing.

  • CCFLEX_FORMATOPTIONS_GENERATESYSTEMMETADATA: When this flag is set, system metadata will be genetated. This information is gathered through system calls and may adversely affect performance.

The following set of flags is useful if the caller is uninterested in certain kinds of elements. Setting these flags will eliminate entire categories of data from the conversion. Note: setting these flags may also remove part or all of the document properties or XMP data.

  • CCFLEX_FORMATOPTIONS_NOBITMAPELEMENTS: Bitmap graphics are suppressed; no dr.image content will appear in the converted document.

  • CCFLEX_FORMATOPTIONS_NOCHARTELEMENTS: Charts are suppressed; no ch.chart content will appear in the converted document.

  • CCFLEX_FORMATOPTIONS_NOPRESENTATIONELEMENTS: Presentation slides are suppressed; no pr.slide content will appear in the converted document.

  • CCFLEX_FORMATOPTIONS_NOVECTORELEMENTS: Vector drawings are suppressed; no dr.drawing content will appear in the converted document.

The following set of flags is useful when dealing with characters that can not be mapped to Unicode.

  • CCFLEX_CHARMAPPING_DEFAULT (off): Default behavior: All text is mapped to Unicode, in tx.text elements.

  • CCFLEX_CHARMAPPING_NOMAPPING: All text is left in the original character set, in tx.utext elements.

  • CCFLEX_CHARMAPPING_MAPTEXT: Text is mapped to Unicode where possible, unmappable text is left in the original character set.

  • CCFLEX_CHARMAPPING_BOTH: Both mapped and unmapped text is included as an alt element containing tx.text and tx.utext.

Default Value

All flags turned off, with the exception of: CCFLEX_FORMATOPTIONS_REMOVEFONTGROUPS.

10.7.2 SCCOPT_CCFLEX_INCLUDETEXTOFFSETS

Note:

This option is obsolete, having been superseded by the CCFLEX_FORMATOPTIONS_INCLUDETEXTOFFSETS flag in the SCCOPT_CCFLEX_FORMATOPTIONS option. However, it has been retained for backwards compatibility.

The value of this option is a Boolean that if set to TRUE will include offset information in the Flexiondoc output according to the schema. If the option is set to FALSE, no offset information is produced.

Handle Types

VTHDOC, VTHEXPORT

Scope

Local

Data Type

VTBOOL

Default

FALSE

10.7.3 SCCOPT_CCFLEX_REMOVEFONTGROUPS

Note:

This option is obsolete, having been superseded by the CCFLEX_FORMATOPTIONS_REMOVEFONTGROUPS flag in the SCCOPT_CCFLEX_FORMATOPTIONS option. However, it has been retained for backwards compatibility.

Some word processing formats contain styles that reference font groups, forcing the user to interpret the correct font from that group by other means. If this option is set to TRUE, references to font groups in input documents are replaced with references to individual fonts.

Handle Types

VTHDOC, VTHEXPORT

Scope

Local

Data Type

VTBOOL

Default

TRUE

10.7.4 SCCOPT_EXXML_DEF_METHOD

This option determines whether XML Export will reference the Flexiondoc schema, the Flexiondoc DTD, or no reference when generating output.

Handle Types

VTHDOC

Scope

Local

Data Type

VTDWORD

Data

One of the following values:

  • SCCEX_XML_XDM_DTD: Document Type Definition (DTD)

  • SCCEX_XML_XDM_XSD: Extensible Schema Definition

  • SCCEX_XML_XDM_NONE: No XML definition reference

Default

SCCEX_XML_XDM_NONE

10.7.5 SCCOPT_EXXML_DEF_REFERENCE

This option allows the developer to set a particular file as the XML definition reference.

If the SCCOPT_EXXML_DEF_METHOD xmlDefinitionMethod option is set to SCCEX_XML_XDM_XSD or SCCEX_XML_XDM_DTD, the value of this option will be used to reference the schema or DTD, respectively.

Handle Types

VTHDOC

Scope

Local

Data Type

Size (in bytes) of the data being passed, including a terminating NULL.

Data

The size of an array that holds WORD-sized characters terminated with a WORD-sized NULL (a UCS-2 string). The size passed is the total number of bytes that this UCS-2 string comprises. It includes in its size the bytes occupied by the terminating NULL.

Default

None

10.7.6 SCCOPT_EXXML_SUBSTREAMROOTS

Note:

As of the 8.1 release of Outside In XML Export, this option has been deprecated. Use the CCFLEX_FORMATOPTIONS_SEPARATESTYLETABLES flag in SCCOPT_CCFLEX_FORMATOPTIONS option instead.

This option selects the element which will be the root of a subtree of Flexiondoc output to be placed in a separate output document (a file or redirected IO stream). Currently, the only element supported for this option is the style_tables element.

When set to a non-empty or non-NULL value, this option specifies the subtree that should be exported to a separate document. This document, if it is a file, will be created in the same directory as the primary output document and will be named xxx.subtree.xml, where xxx.xml is the name of the primary document and subtree is the name of the exported element (for example, if output.xml is the primary output file, then the style_tables subtree would be exported to a file named output.style_tables.xml). When this option is set to an empty or NULL value, all elements will be placed in the primary output document.

An element specified in this option must include its namespace, followed by a comma, then the element name. Currently, the allowable values for this option are NULL, an empty string, or the following string:

http://www.outsideinsdk.com/xmlns/flexiondoc5_6,style_tables

Note:

This option will only work correctly if the SCCOPT_EXXML_DEF_METHOD option is set (to any value). If SCCOPT_EXXML_DEF_METHOD isn't set, the result will be an invalid output file.

Handle Types

VTHDOC, VTHEXPORT

Scope

Local

Data Type

VTDWORD

Data

The data for this option is a UCS-2 string (a NULL-terminated array of 16 bit Unicode characters). The data size should be specified as the length of the string in bytes (not characters), and should include the size of the terminating NULL.

Default

NULL

10.8 File System

This section discusses file system options.

10.8.1 SCCOPT_IO_BUFFERSIZE

This set of three options allows the user to adjust buffer sizes to tailor memory usage to the machine's ability. The numbers specified in these options are in kilobytes. These are advanced options that casual users of XML Export may ignore.

Handle Type

NULL, VTHDOC

Scope

Global

Data Type

SCCBUFFEROPTIONS Structure

Data

A buffer options structure

10.8.1.1 SCCBUFFEROPTIONS Structure

typedef struct SCCBUFFEROPTIONStag
{
   VTDWORD dwReadBufferSize;    /* size of the I/O Read buffer 
                                in KB */
   VTDWORD dwMMapBufferSize;    /* maximum size for the I/O   
                                Memory Map buffer in KB */
   VTDWORD dwTempBufferSize;    /* maximum size for the memory-
                                mapped temp files in KB */
   VTDWORD dwFlags;             /* use flags */
} SCCBUFFEROPTIONS, *PSCCBUFFEROPTIONS;

Parameters

  • dwReadBufferSize: Used to define the number of bytes that will read from disk into memory at any given time. Once the buffer has data, further file reads will proceed within the buffer until the end of the buffer is reached, at which point the buffer will again be filled from the disk. This can lead to performance improvements in many file formats, regardless of the size of the document.

  • dwMMapBufferSize: Used to define a maximum size that a document can be and use a memory-mapped I/O model. In this situation, the entire file is read from disk into memory and all further I/O is performed on the data in memory. This can lead to significantly improved performance, but note that either the entire file can be read into memory, or it cannot. If both of these buffers are set, then if the file is smaller than the dwMMapBufferSize, the entire file will be read into memory; if not, it will be read in blocks defined by the dwReadBufferSize.

  • dwTempBufferSize: The maximum size that a temporary file can occupy in memory before being written to disk as a physical file. Storing temporary files in memory can boost performance on archives, files that have embedded objects or attachments. If set to 0, all temporary files will be written to disk.

  • dwFlags

    • SCCBUFOPT_SET_READBUFSIZE 1

    • SCCBUFOPT_SET_MMAPBUFSIZE 2

    • SCCBUFOPT_SET_TEMPBUFSIZE 4

    To set any of the three buffer sizes, set the corresponding flag while calling dwSetOption.

Default

The default settings for these options are:

  • #define SCCBUFOPT_DEFAULT_READBUFSIZE 2: A 2KB read buffer.

  • #define SCCBUFOPT_DEFAULT_MMAPBUFSIZE 8192: An 8MB memory-map size.

  • #define SCCBUFOPT_DEFAULT_TEMPBUFSIZE 2048: A 2MB temp-file limit.

Minimum and maximum sizes for each are:

  • SCCBUFOPT_MIN_READBUFSIZE 1: Read one Kbyte at a time.

  • SCCBUFOPT_MIN_MMAPBUFSIZE 0: Don't use memory-mapped input.

  • SCCBUFOPT_MIN_TEMPBUFSIZE 0: Don't use memory temp files

  • SCCBUFOPT_MAX_READBUFSIZE 0x003fffff, SCCBUFOPT_MAX_MMAPBUFSIZE 0x003fffff, SCCBUFOPT_MAX_TEMPBUFSIZE 0x003fffff: These maximums correspond to the largest file size possible under the 4GB DWORD limit.

10.8.2 SCCOPT_TEMPDIR

From time to time, the technology needs to create one or more temporary files. This option sets the directory to be used for those files.

It is recommended that this option be set as part of a system to clean up temporary files left behind in the event of abnormal program termination. By using this option with code to delete files older than a predefined time limit, the OEM can help to ensure that the number of temporary files does not grow without limit.

Note:

This option will be ignored if SCCOPT_REDIRECTTEMPFILE is set.

Handle Types

NULL, VTHDOC

Scope

Global

Data Type

SCCUTTEMPDIRSPEC structure

10.8.2.1 SCCUTTEMPDIRSPEC Structure

This structure is used in the SCCOPT_TEMPDIR option.

SCCUTTEMPDIRSPEC is a C data structure defined in sccvw.h as follows:

typedef struct SCCUTTEMPDIRSPEC
{
   VTDWORD   dwSize;
   VTDWORD   dwSpecType;
   VTBYTE    szTempDirName[SCCUT_FILENAMEMAX];
} SCCUTTEMPDIRSPEC,  * LPSCCUTTEMPDIRSPEC;

There is a limitation in the current release. dwSpecType describes the contents of szTempDirName. Together, dwSpecType and szTempDirName describe the location of the source file. The only dwSpecType values supported at this time are:

  • IOTYPE_ANSIPATH: Windows only. szTempDirName points to a NULL-terminated full path name using the ANSI character set and FAT 8.3 (Win16) or NTFS (Win32 and Win64) file name conventions.

  • IOTYPE_UNICODEPATH: Windows only. szTempDirName points to a NULL-terminated full path name using the Unicode character set and NTFS file name conventions. Note that the length of the path name is limited to SCCUT_FILENAMEMAX bytes, or (SCCUT_FILENAMEMAX / 2) double byte Unicode characters.

  • IOTYPE_UNIXPATH: UNIX platforms only. szTempDirName points to a NULL-terminated full path name using the system default character set and UNIX path conventions.

Specifically not supported at this time is IOTYPE_REDIRECT.

Parameters

  • dwSize: Set to sizeof(SCCUTTEMPDIRSPEC).

  • dwSpecType: IOTYPE_ANSIPATH, IOTYPE_UNICODEPATH, or IOTYPE_UNIXPATH

  • szTempDirName: The path to the directory to use for the temporary files. Note that if all SCCUT_FILENAMEMAX bytes in the buffer are filled, there will not be space left for file names.

Default

The system default directory for temporary files. On UNIX systems, this is the value of environment variable $TMP. On Windows systems, it is the value of environment variable %TMP%.

10.8.3 SCCOPT_DOCUMENTMEMORYMODE

This option determines the maximum amount of memory that the chunker may use to store the document's data, from 4 MB to 1 GB. The more memory the chunker has available to it, the less often it needs to re-read data from the document.

Handle Types

NULL, VTHDOC

Scope

Global

Data Type

VTDWORD

Parameters

  • SCCDOCUMENTMEMORYMODE_SMALLEST (4MB)

  • SCCDOCUMENTMEMORYMODE_SMALL (16MB)

  • SCCDOCUMENTMEMORYMODE_MEDIUM (64MB)

  • SCCDOCUMENTMEMORYMODE_LARGE (256MB)

  • SCCDOCUMENTMEMORYMODE_LARGEST (1 GB)

Default

SCCDOCUMENTMEMORYMODE_LARGE (256MB)

10.8.4 SCCOPT_REDIRECTTEMPFILE

This option is set when the developer wants to use redirected IO to completely take over responsibility for the low level IO calls of the temp file.

Handle Types

NULL, VTHDOC

Scope

Global (not persistent)

Data Type

VTLPVOID: pCallbackFunc

Function pointer of the redirect IO callback.

Redirect call back function:

typedef
{
     VTDWORD (* REDIRECTTEMPFILECALLBACKPROC)
     (HIOFILE *phFile, 
     VTVOID *pSpec, 
     VTDWORD dwFileFlags);

There is another option to handle the temp directory, SCCOPT_TEMPDIR. Only one of these two can be set by the developer. The SCCOPT_TEMPDIR option will be ignored if SCCOPT_REDIRECTTEMPFILE is set. These files may be safely deleted when the Close function is called.