COM Interface

The COM Interface makes it possible for the AH Formatter V5.0 to function through applications using COM-supported languages such as Visual Basic, Delphi and VBScript.

Object Class Name

The object class name is shown below. Use "XfoComCtl.XfoObj" as the object class name when invoking from the Create Object statement in Visual Basic.

namespaceXfoComCtl
Object Class NameXfoObj
COM DLL File NameXfoComCtl50.dll

In order to use the COM interface, Windows registration is required. When the AH Formatter V5.0 is installed correctly, the registration of COM is automatically done. To re-register the COM, please execute regsvr32 from the console as follows.

> cd [Install directory]
> regsvr32 XfoComCtl50.dll

Properties

XfoObj includes the following properties.

Name Type R/W Functions
Version String R Get the version string of AH Formatter V5.0.
DocumentURI String R/W Specifies the URI of the XML/FO/HTML documents you will format.
  • If it is omitted or "@STDIN" is specified, XML documents are loaded from stdin.
The documents loaded from stdin are supposed to be FO files.
StylesheetURI String R/W Specifies the URI of XSL/CSS stylesheets for formatting. If the specified XML document is FO, or the XML file contains the processing instruction <?xml-stylesheet ...?> and the stylesheet is specified, or the specified document is HTML, there is no need to specify a stylesheet.
If the specified document is HTML, it will be the last user stylesheet. It is applied posterior to the stylesheet added by AddUserStylesheetURI and the option setting file specified by AddOptionFileURI.
FormatterType Long R/W Specify formatter type. Use one of the following values to specify the formatter type. If this parameter is omitted or invalid, it is considered as AUTO. V5.0
0.AUTO
1.HTML
2.XHTML
3.XML+CSS
4.XSL-FO
HtmlDefaultCharset String R/W Specifies the default encoding of HTML. This setting is applied to HTML whose encoding is unknown.V5.0
OptionFileURI String R/W Specifies the URI of the XML-format Option Setting File which describes AH Formatter V5.0 options. The contents of the option setting file are evaluated immediately. When you set the property which is contrary to the already set property, the former setting will be overwritten. URI added by AddOptionFileURI will be canceled.
OptionFileCount Long R Counts the number of Option Setting Files you specified.
PrinterName String R/W Specifies the output format or the printer name to output.
  • When a printer name is specified, the formatted result is outputted to that printer.
  • When "@STDPRN" is specified, the formatted result is outputted to the currently used printer.
  • When "@PDF" is specified, the formatted result is outputted to PDF.
  • When "@SVG" is specified, the formatted result is outputted to SVG.
  • When "@PS" is specified, the formatted result is outputted to PostScript.
  • When "@INX" is specified, the formatted result is outputted to INX.
  • When "@XPS" is specified, the formatted result is outputted to XPS.
  • When "@TEXT" is specified, the formatted result is outputted to a text format file. no-LT
  • When "@AreaTree" is specified, the AreaTree will be outputted. no-LT
When omitted, "@PDF" is the default. Please refer to "How to specify the printer name" for details.
Please refer to "PDF Output" for the PDF output information.
Please refer to "SVG Output" for the SVG output information.
Please refer to "PostScript Output" for the PostScript output.
Please refer to "INX Output" for the INX output.
Please refer to "XPS Output" for the XPS output.
Please refer to "TEXT Output" for the text output information.
@TEXT and @AreaTree are not effective with AH Formatter V5.0 Lite.
PrinterSettingURI String R/W Specifies the URI of the Printer Setting File. Please refer to "How to create a Printer Setting File".
OutputFilePath String R/W Specifies the output file path of the formatted result. When the printer is specified as an output format by PrinterName, a printing result is saved to the specified file by the printer driver. When output format other than a printer is specified, it is saved as the specified file with the specified output format. When "@STDOUT" is specified, it goes to standard output. When omitted, it goes to standard output. However in cases in which ActiveServerPages requires, PDF data is output to the Web Browser.
OutputFOPath String R/W Specifies the output FO (or HTML etc.) file as the result of XSLT when the input files are an XML document and an XSL stylesheet.
  • If the input file is FO, no file is outputted.
  • When "@STDOUT" is specified, it is considered as stdout.
If the setting is omitted, nothing outputs.
ExternalXSLT String R/W Command-line of External XSLT Processor. If this is omitted, default MSXML4 or MSXML3 will be used. For example:
xslt %param -o %3 %1 %2
These meanings are as follows.
  • %1 : XML document
  • %2 : XSL stylesheet
  • %3 : XSLT output file
  • %param : xsl:param
%1 to %3 are used to express only parameter positions. Do not replace them with actual file names. In case you use XSL:param for an external XSLT processor, set the parameter in XSLTParamFormat and SetXSLTParam.
XSLTParamFormat String R/W Specifies the parameter format of xsl:param when using External XSLT Processor. For example:
-p %p %v
These meanings are as follows.
  • %p : Parameter Name
  • %v : Parameter Value
BaseURI String R/W Specifies the default base URI.
FormattedPages Long R Get the formatted total pages.
TwoPassFormatting Boolean R/W When formatting a huge document with a large amount of unresolved <fo:page-number-citation>, a large amount of memories are consumed because the cancellation of the page information is impossible. Therefore, the limit is caused in the number of pages to format. This parameter solves that problem by making the formatting two passes. Although its processing time may be increased, only the page number information which should be solved will consume the memory and the memory consumption will be extremely decreased. Please refer to "Formatting Large Document". no-LT
MultiVolume Boolean R/W Specifies to output PDF in separate volume. The error occurs when FO doesn't include the axf:output-volume-info extension property. When the value false is specified, the StartVolume/EndVolume parameter is invalid, instead the parameter StartPage/EndPage is effective. When the value true is specified, the parameter StartPage/EndPage is invalid, instead the parameter StartVolume/EndVolumeis effective. no-LT
StartVolume
EndVolume
Long R/W Effective when MultiVolume=true is specified. Specifies the start and the end of separate volume to output. If the setting of start for separate volume is omitted or the value true is less than 0, the start volume is accounted as the first volume. If the setting of start for separate volume is omitted or the value true is more than actual number of separate volume, the end volume is accounted as the last volume. If the setting is conflicted, an error occurs. (e.g. StartVolume=5 EndVolume=3) no-LT
TotalVolumeCount Long R Gets the number of all the separate volumes when outputting PDF to multiple separate volumes. no-LT
OutputVolumeCount Long R Gets the number of the actual separate volumes when outputting PDF to multiple separate volumes. no-LT
StartPage
EndPage
Long R/W Specifies the start page number or the end page number of a document to output. If the start page is omitted or the specified value is 0 or less, the start page is considered from the first page. If the end page is omitted or the specified value exceeds the actual page number, the end page is considered as the last page. If the setting is inconsistent, (for example, StartPage=5 EndPage=3) an error occurs.
ExitLevel Long R/W Specifies error level to abort formatting process. AH Formatter V5.0 will stop formatting when the detected error level is equal to the specified ExitLevel property or higher. The default value is 2 (Warning). Thus if an error occurred and error level is 2 (Warning) or higher, the formatting process will be aborted. Legal values are from 1 to 4. When the value of 5 or higher is specified, it is considered to be the value of 4. If an error-level:4 (Fatal error) occurs, the formatting process will be aborted unconditionally. Note: Setting this value does not cause an error message to be displayed.
ErrorLevel Long R Indicates the error level that occurred during the formatting process.
  1. Information
  2. Warning
  3. Recoverable Error
  4. Fatal Error
ErrorCode Long R Indicates the error code of the error that occurred during the formatting process. Zero means no error. Non-zero indicates an error occurred.
ErrorMessage String R Indicates the error message of the error that occurred during the formatting process.
XMLDOMDocument Object W Specifies the target XML document used by the MSXML XMLDOMDocument object.
XMLDOMStylesheet Object W Specifies the target XSL stylesheet used by the MSXML XMLDOMDocument object.

Properties – PDF Settings

Name Type R/W Functions
PdfVersion Long R/W Specifies PDF version:
0.PDF1.3
1.PDF1.4
2.PDF1.5
3.PDF1.6
4.PDF1.7
101.PDF/X-1a:2001 no-LT
103.PDF/X-3:2002 no-LT
104.PDF/X-1a:2003 no-LT
105.PDF/X-2:2003 no-LT
106.PDF/X-3:2003 no-LT
200.PDF/A-1a:2005 no-LT
400.PDF/A-1b:2005 no-LT
Impossible to specify PDF/X or PDF/A with AH Formatter V5.0 Lite.
PdfEncryptLevel Long R/W Specifies the key length when encrypting the PDF file during outputting. The key length can be specified as follows: (Note: This parameter is effective only when you specify PDF1.4 or later with PdfVersion.)
0.40-bit
1.128-bit
PdfUserPassword String W Specifies the user password for PDF. The password must be within 32 bytes.
PdfOwnerPassword String W Specifies the owner password for PDF. The password must be within 32 bytes.
PdfNoPrinting Boolean R/W Prohibits printing the PDF file.
It is necessary to specify PdfOwnerPassword so that this parameter is effective.
PdfNoChanging Boolean R/W Prohibits making changes to the PDF file.
PdfNoContentCopying Boolean R/W Prohibits copying the content of the PDF file.
It is necessary to specify PdfOwnerPassword so that this parameter is effective.
PdfNoAddingOrChangingComments Boolean R/W Prohibits adding comments and form fields to the PDF file.
It is necessary to specify PdfOwnerPassword so that this parameter is effective.
PdfNoFillForm Boolean R/W Prohibits filling in of form fields and signing of the PDF file. This parameter is effective only when you specify PDF1.4 or later for the PdfVersion. In order to make this parameter effective, the setting of the other parameter may be required. See also the 'PDF Reference' from Adobe Systems Incorporated for more details.
PdfNoAccessibility Boolean R/W Prohibits text access for screen reader devices of the PDF file. This parameter is effective only when you specify PDF1.4 or later for the PdfVersion.
PdfNoAssembleDoc Boolean R/W Prohibits inserting, deleting and rotating the PDF pages. This parameter is effective only when you specify PDF1.4 or later for the PdfVersion.
PdfEmbedAllFontsEx Long R/W Specifies whether or not to embed all embeddable fonts used in the file of the formatted result into PDF. However, even if all fonts are specified to embed, the font forbidden embedding or the font which is not able to be embedded to PDF cannot be embedded.
0.Specified font
1.All fonts excluding Base14 font
2.All fonts including Base14 font
PdfEmbedFonts String R/W Embeds the specified font in the created PDF. If you want to specify plural fonts, put commas between each fonts.
PdfErrorOnEmbedFault Boolean R/W When true is specified, an error is issued when font embedding fails.
PdfErrorOnMissingGlyph Boolean R/W When true is specified, an error is issued when there is a missing glyph.
PdfPrintingAllowed Long R/W Specifies whether and how to permit printing of PDF. This parameter is effective only when you specify PDF1.4 or later with PdfVersion.
0.Not Allowed
1.Low Resolution Printing
2.High Resolution Printing
PdfImageCompression Long R/W When a color image format cannot be stored directly in the PDF, an image is stored after being transformed into a bitmap format which is compatible with PDF. Use one of the following values to specify the compression method of the data stored in a PDF file. When Auto is selected, the process is automatically done and creates the image data according to the setting of PdfJPEGQuality and PdfRasterizeResolution. Whichever has the smaller compressed size, JPEG or ZLIB, is selected. These are the settings for color images. Specify PdfGrayscaleImageCompression for grayscale images, and PdfMonochromeImageCompression for monochrome images.
0.Auto
1.JPEG compression
2.ZLIB compression
3.JPEG2000 compression (it is effective only when PdfVersion is PDF1.5 or higher)
PdfJPEGQuality Long R/W For color image formats that cannot be stored directly in PDF, the image quality can be specified by a numerical value within the range of 1-100 when JPEG compression is specified for the image-compression method. The quality becomes higher in proportion to the increase in the number; however the file size also becomes larger. This is the setting for color images. Specify PdfGrayscaleJPEGQuality for grayscale images.
CAUTION: This is not for changing the quality of a JPEG formatted image.
PdfPutImageColorProfile Boolean R/W Specifies whether to embed in the PDF the color profile of the color image that will be embedded.
PdfImageDownSampling Long R/W Specifies either of the following methods to downsample the raster color image in a PDF. When a value other than None is specified, an image that has a resolution larger than the one specified by PdfImageDownSamplingDPI will be downsampled into the resolution specified by PdfImageDownSamplingTarget. These are the settings for color images. Specify PdfGrayscaleImageDownSampling for grayscale images, and PdfMonochromeImageDownSampling for monochrome images.
0.None
1.Average
2.Bicubic
3.Subsampling
PdfImageDownSamplingTarget Long R/W Sets the target resolution when a raster color image is downsampled.
PdfImageDownSamplingDPI Long R/W Sets the resolution for which a raster color image is to be downsampled.
PdfGrayscaleImageCompression Long R/W When a raster grayscale image format cannot be stored directly in the PDF, the image is stored after being transformed into a bitmap format which is compatible with PDF. Use one of the following values to specify the compression method of the data stored in a PDF file. When Auto is selected, the process is automatically done and creates the image data according to the setting of PdfGrayscaleJPEGQuality and PdfRasterizeResolution. Whichever has the smaller compressed size, JPEG or ZLIB, is selected. These are the settings for grayscale images. Specify PdfImageCompression for color images and PdfMonochromeImageCompression for monochrome images.
0.Auto
1.JPEG compression
2.ZLIB compression
3.JPEG2000 compression (it is effective only when PdfVersion is PDF1.5 or higher)
PdfGrayscaleJPEGQuality Long R/W For grayscale image formats that cannot be stored directly in the PDF, the image quality can be specified by a numerical value within the range of 1-100 when JPEG compression is specified for PdfGrayscaleImageCompression. The quality becomes higher in proportion to the increase in the number; however the file size also becomes larger. Specify PdfJPEGQuality for color images.
CAUTION: This is not for changing the quality of a JPEG formatted image.
PdfGrayscaleImageDownSampling Long R/W Specifies either of the following methods to downsample raster grayscale images in a PDF. When a value other than None is specified, an image that has a resolution larger than the one specified by PdfGrayscaleImageDownSamplingDPI will be downsampled into the resolution specified by PdfGrayscaleImageDownSamplingTarget. These are the settings for grayscale images. Specify PdfImageDownSampling for color images and PdfMonochromeImageDownSampling for monochrome images.
0.None
1.Average
2.Bicubic
3.Subsampling
PdfGrayscaleImageDownSamplingTarget Long R/W Sets the target resolution when a raster grayscale image is downsampled.
PdfGrayscaleImageDownSamplingDPI Long R/W Sets the resolution for which a raster grayscale image is to be downsampled.
PdfMonochromeImageCompression Long R/W When monochrome image formats cannot be stored directly in the PDF, the image is stored after being transformed into a bitmap format which is compatible with PDF. Use one of the following values to specify the compression method of the data stored in a PDF file. These are the settings for monochrome images. Specify PdfGrayscaleImageCompression for grayscale images and PdfImageCompression for color images.
0.CCITT Group4
1.CCITT Group3
2.Run Length compression
3.ZLIB compression
4.None
PdfMonochromeImageDownSampling Long R/W Specifies either of the following methods to downsample raster monochrome images in a PDF. When a value other than None is specified, an image that has a resolution larger than the one specified by PdfMonochromeImageDownSamplingDPI will be downsampled to the resolution specified for PdfMonochromeImageDownSamplingTarget. These are the settings for monochrome images. Specify PdfImageDownSampling for color images and PdfGrayscaleImageDownSampling for grayscale images.
0.None
1.Average
2.Bicubic
3.Subsampling
PdfMonochromeImageDownSamplingTarget Long R/W Sets the target resolution when a raster monochrome image is downsampled.
PdfMonochromeImageDownSamplingDPI Long R/W Sets resolution for which raster monochrome images are to be downsampled.
PdfLinearize Boolean R/W Specifies whether to output linearized PDF or not. no-LT
PdfCompressContentStream Boolean R/W Specifies whether the text and the line art in PDF are compressed in order to make the size of PDF smaller or not.
PdfUseLaunchForRelativeURI Boolean R/W Specifies whether external links specified by the relative address are transformed into 'Open the file' or into 'World Wide Web link' in the PDF link properties. If the value is true, it is transformed to 'Open the file'. If the value is false, it is transformed to 'World Wide Web link'
PdfRGBConversion Long R/W Specifies how to convert the RGB color space (DeviceRGB) to DeviceGray.
0.No Conversion
1.Black to DeviceGray
2.Gray to DeviceGray
3.All RGB to DeviceGray
4.All RGB to CMYK
PdfRasterizeResolution Long R/W Specifies the value of the rasterised-resolution of the transformed raster images in the range from 70 to 500(DPI). SVG, EMF and WMF are drawn in PDF as vectors without being transformed to raster images.
PdfTag Boolean R/W Generates Tagged PDF. Ignored if PDF cannot be tagged depending on the PDF versions. no-LT
PdfOutputScale String W Specifies the scaling ratio of the PDF to output. A value with a unit or % value can be specified as length.
PdfOutputHeight String R/W Scales the height of PDF to output. A value with a unit or % value can be specified as length.
PdfOutputWidth String R/W Scales the width of PDF to output. A value with a unit or % value can be specified as length.
PdfErrorOnPDFXFault Boolean R/W An error is not issued when PDF/X or PDF/A is generating.
PdfSignature Boolean R/W Applies the digital signature the signature field in PDF. Refer to Digital Signature for more details. no-LT
PdfSignatureName String R/W Specifies the name of the signature information to be used when applying a digital signature. Refer to Digital Signature for more details. no-LT
PdfCertificateName String R/W Specifies the name of the certificate information to be used when applying a digital signature. Refer to Digital Signature for more details. no-LT

Properties – SVG Settings

Name Type R/W Functions
SvgVersion Long R/W Specifies SVG version:
0.SVG 1.1
1.SVG Basic
2.SVG Tiny
SvgImageProcessingType Long R/W Specifies how to treat images contained in the SVG being created.
0.Embeds all image files.
1. Copies all image files to the destination that is specified by SvgImageCopyPath, and then links.
2. Links images that can be linked and embeds images that have to be embedded. Raster images other than JPEG and PNG are always embedded.
3. Copies images that have been linked to the destination that is specified by SvgImageCopyPath, and links. The embedded image are embedded.
If this parameter is omitted, it is considered as 0 and all images are embedded.
SvgImageCopyPath String R/W Specifies the destination to copy images to as specified in 1 or 3 for SvgImageProcessingType.
SvgGzipCompression Boolean R/W Specifies whether to compress the outputted SVG into gzip format or not.
SvgSingleFile Boolean R/W Specifies whether a formatted result composed of multiple pages is output as a single SVG file or as multiple SVG files. If the value is true, outputs as a single SVG file. If the value is false, outputs as multiple SVG files. When multiple files are output, the files are named by the format specified by SvgFormat. This takes effect only when outputting to a file and is not valid when output is without a file name such as when streaming, etc.
SvgImageRename Boolean R/W When images are copied to the directory specified by SvgImageCopyPath etc., specifies whether to rename all file names to the prefix specified by SvgImagePrefix, or use the original name. When the file name overlaps a sequential number is added. When true is specified, all files are renamed.
SvgImagePrefix String R/W When images are copied to the directory specified by SvgImageCopyPath, specifies the prefix of the file name. The file name will be prefixed followed by a sequential numbers only if the Default is empty.
SvgSinglePageNumber Boolean R/W When SvgSingleFile=false is specified, specifies whether to add sequential number to the output SVG even if it has only one-page. If false it is not added.
SvgFormat String R/W When the original document has multiple pages and false is specified in SvgSingleFile, each page will be output as an SVG files that has a consecutive number at the end of the file name. This parameter specifies the format of those consecutive numbers. For example, when "document.svg" is specified as the name for the output file, by specifying "-01" for SvgFormat the output files will be document-01.svg, document-02.svg and so on. If this parameter is omitted then "1" is considered to have been specified.
SvgEmbedAllFonts Boolean R/W Specifies whether to embed fonts in the outputted SVG.
SvgEmbedFonts String R/W Embeds the specified font in the created SVG. If you want to specify plural fonts, put commas between fonts.
SvgErrorOnEmbedFault Boolean R/W When true is specified, an error is issued when font embedding fails.
SvgImageConversion Long R/W Selects how to convert the images embedded in SVG from the following.
0.Auto
1.JPEG conversion
2.PNG conversion
SvgJPEGQuality Long R/W For the image format which cannot be stored directly in SVG, when JPEG conversion is specified in SvgImageConversion, specifies the quality of the image using the range of 1-100. The quality becomes higher in proportion to the increase in the number; however the file size also becomes larger. The initial value is 80.
SvgRasterizeResolution Long R/W Specifies the value of the rasterized-resolution of the raster image which is transformed from vector image in the range from 70 to 500(DPI). SVG, EMF and WMF are drawn in SVG as vectors without being transformed to raster images.

Properties – INX Settings

Name Type R/W Functions
InxOutputMode Long R/W Specifies the INX output mode.
0.Text area output mode
1.Line area output mode
2.Block area output mode

Properties – Printer Settings

Name Type R/W Functions
PrnCopies Long R/W Specifies the number of copies. Effective when outputting to a printer. If nothing is specified, the value is considered as 1.
PrnCollate Boolean R/W Indicates collation of multiple copies. Effective when outputting to printer and the number of copies is plural. If it is not specified or the value 'false' is specified, the same page is multi-copied continuously. If true is specified, the pages specified print from start to end repeatedly.
BatchPrint Boolean R/W When the value false is specified, the print dialog box is displayed when printing. If the setting is omitted or the value true is specified, the print dialog is not displayed.

Some values can be added one of the following units.

Representation Meanings
cm centimeter
mm millimeter. 1 mm = 1/10 cm
in inch. 1 in = 2.54 cm
pt point. 1 pt = 1/72 in
pc pica. 1 pc = 12 pt
jpt 1 jpt = 0.3514 mm V5.0
q 1 q = 0.25 mm V5.0

Methods

XfoObj provides the following methods.

Name Return Value Arguments Functions
Execute None None Executes formatting and outputs to a PDF specified in OutputFilePath or printer specified in PrinterName.
Clear None None Initializes the formatting engine.
SetXSLTParam None name : String
value : String
Sets parameter name and value for xsl:param.
ClearXSLTParam None None Clears all parameter names and values for xsl:param.
SetFontAlias None fontName : String
aliasName : String
Sets the substitution of font name. This substitution acts on the font names existing in FO. The font name 'fontName' is replaced to 'aliasName'.
EraseFontAlias None fontName : String Erases the substitution of font name 'fontName'.
ClearFontAlias None None Clears all substitutions of font name.
GetOptionFileURI String index : Long Gets the URL of Option Setting File from the index you specified.
AddOptionFileURI None fileURI : String Adds the URL of XML-based Option Setting File that indicates the options for AH Formatter V5.0. The contents of the option setting file are evaluated immediately. When you set the property which is contrary to the already set property, the former setting will be overwritten.
AddUserStylesheetURI None String fileURI Specifies the CSS user stylesheet you want to add. AddUserStylesheetURI can be specified any number of times. It is applied by specified order prior to the stylesheet specified by StylesheetURI. V5.0

Event

XfoObj provides the following event.

Name Return Value Arguments Functions
onMessage None errLevel : Long
errCode : Long
errMsg : String
Events that returns error information (error level, error code, error message) in the formatting process.
onFormatPage None pageNo : Long
The number of pages that formatted during the formatting process can be received as the event.

PDF Output to the Web Browser

It's possible to directly output PDF to the Web Browser, when you use ASP application on a server and output the formatted result in PDF. This output requires the following conditions:

  1. "@PDF" is specified to "PrinterName".
  2. There is no "OutputFilePath" specified.
  3. Perform "Response.End" after calling "Execute" method

Programming Example

The following is a sample of VBScript programming. In addition, [Install directory]/samples/com included some useful sample files for COM.

dim obj
Set obj = CreateObject("XfoComCtl.XfoObj")

obj.DocumentURI = "c:\temp\test.xml"
obj.StylesheetURI = "c:\temp\test.xsl"
obj.OutputFilePath = "c:\temp\test.pdf"
obj.ExitLevel = 4
obj.Execute()

if obj.ErrorCode <> 0 then
 MsgBox "ErrorCode : " & obj.ErrorCode & " " & obj.ErrorMessage
else
 MsgBox "Create PDF : " & obj.OutputFilePath

Set obj = Nothing