Command-line Interface

The Command-line Interface is provided as an executable file. You can call it from either a Windows batch file or a Solaris / Linux / Macintosh / HP-UX / AIX shell script.

AH Formatter V5.0 can be executed from the Command-line Interface by:

Executable File Name

The executable file names are as follows:

WindowsAHFCmd.exe
Solaris / Linux / Macintosh / HP-UX / AIXAHFCmd

Environment Variables have to be set in order to execute these files. In the Windows version these are automatically set by the installer. In the non-Windows versions they have to be set. Please refer to Environment Variables.

Running Command-line program on Windows

To run the command-line program of AH Formatter V5.0 for Windows, enter the following command.

> cd [Install directory]
> AHFCmd -d samples\sample.fo -o \tmp\sample.pdf

If AH Formatter V5.0 for Windows is successfully installed, the following message will be displayed.

AHFCmd : AH Formatter V5.0 for Windows (5,0,XXXX,XXXX)
         Copyright (c) 1999-2009 Antenna House, Inc.
AHFCmd : Formatting finished normally.

Then you can view sample.pdf in the \tmp directory.

Running Command-line program from a shell script

In AH Formatter V5.0 for non-Windows, the installation program will place the shell script file named run.sh in the [Install directory]. This is a sample shell script for running the command-line program AHFCmd. This script sets the necessary environment variables in the shell, and runs AHFCmd. To run the command-line program of AH Formatter V5.0 for non-Windows using this script, enter the following command from your terminal window.

$ cd [Install directory]
$ ./run.sh -d samples/sample.fo -o /tmp/sample.pdf

If AH Formatter V5.0 for non-Windows is successfully installed, the following message will be displayed. Then you can get sample.pdf in /tmp directory.

AHFCmd : AH Formatter V5.0 for Xxxxxx (5,0,XXXX,XXXX)
         Copyright (c) 1999-2009 Antenna House, Inc.
AHFCmd : Formatting finished normally.

The same parameters in the same formats apply to both AHFCmd and run.sh.

Command-line Parameters

The following parameters apply to the Command-line Interface: Parameters with * in the following table indicate a negative meaning if no is placed in the beginning of the command. For example, -nomultivol cansels to output PDF in separate volume. no-LT

When specifying a path name that contains a space, the path name must be enclosed in double quotation marks. If two conflicting parameters are specified, the last parameter on the line takes precedence.

Parameter Functions
-d Document Specifies the URI of the target XML/FO/HTML document to be formatted.
  • When -d @STDIN is specified, FO document is loaded from standard in. The document loaded from standard in is supposed to be an FO file.
If this parameter is omitted, a simple Command-line error message appears and processing stops without formatting.
-s Stylesheet Specifies the URI of the target XSL/CSS document. 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.
An XSLT processor is necessary to use XSL stylesheets. In the Windows version, MSXML4 or MSXML3 is used as the standard XSLT processor. If you want to use another XSLT processors or in non-Windows version, you need to set which XSLT processor you are going to use. Setting the XSLT processor is performed by "Environment Variables" or "Option Setting File".
If the specified document is CSS, it will be the last user stylesheet. It is applied posterior to the stylesheet added by -css and the option setting file specified by -i.
-f Formatter-Type Specifies the formatter type from the following:
  • AUTO
  • HTML
  • XHTML
  • XMLCSS
  • XSLFO
If this parameter is omitted or invalid, it is considered as AUTO. V5.0
-css User-Stylesheet Specifies the CSS user stylesheet you want to add. -css can be specified any number of times. It is applied by specified order prior to the stylesheet specified by -s. V5.0
-htmlcs Decalt-HTML-Charset Specifies the default encoding of HTML. This setting is applied to HTML whose encoding is unknown. If this parameter is omitted, UTF-8 is considered as default. V5.0
-o Output-File Specifies the path name of the resulting output file.
  • When -o @STDOUT is specified, the result is written to standard out.
  • If both the printer name and this property are specified, the formatted result will be stored in the file using the printer driver.
  • When -p @PDF or -p @TEXT or etc. is specified, the resulting PDF or text will be stored in the file specified by this parameter.
If this parameter is omitted, the result will be written to standard out.
-i Option-Setting-File Specifies the path name of "Option Setting File" which defines AH Formatter V5.0 options in XML-format. Any number of these parameters can be specified. If any content of this file is changed it automatically overwrites the previous settings. Because only a described parameter in the Option Setting File is evaluated, it is possible to change a part of setting by adding a file that describes those parameters that should be changed. If conflicting values for a parameter are specified in the Option Setting File and the Command-line, then the Command-line value takes precedence.
-ix Imports AHFSettings.xml (AHFSettings(x64).xml for Windows x64 version) in the application data directory indicated as the environment variable APPDATA as the option setting file. This parameter is equivalent to
-i "[APPDATA]\AntennaHouse\AHFormatter\5.0\AHFSettings.xml"
or
-i "[APPDATA]\AntennaHouse\AHFormatter\5.0\AHFSettings(x64).xml"
Effective only for Windows version.
-p Printer-Name Specifies the printer name where the formatted result is outputted If this parameter is omitted, -p @PDF is automatically specified.
  • When -p @STDPRN is specified, the standard printer is used.
  • When -p @PDF is specified, the formatted result is not output to a printer but rather to PDF.
  • When -p @SVG is specified, the formatted result is output as SVG.
  • When -p @PS is specified, the formatted result is output as PostScript.
  • When -p @INX is specified, the formatted result is output as INX.
  • When -p @XPS is specified, the formatted result is output as XPS.
  • When -p @TEXT is specified, the formatted result will be outputted to the file as text format. no-LT
  • When -p @AreaTree is specified, the AreaTree will be outputted. no-LT
A printer name can only be specified in the Windows version. Please refer to "How to specify the Printer Name".
Please refer to "PDF Output" for PDF output info.
Please refer to "SVG Output" for SVG output info.
Please refer to "PostScript Output" for PostScript output info.
Please refer to "INX Output" for INX output info.
Please refer to "XPS Output" for XPS output info.
Please refer to "TEXT Output" for text output info.
@TEXT and @AreaTree are not effective with AH Formatter V5.0 Lite.
-start Start-Page
-end End-Page
Specifies the start page and the end page of output document. If the start page is omitted or the specified value is 0 or less, the start page is considered the first page. If the end page is omitted or the specified value exceeds the actual page number, the end page is considered the last page. If the setting is inconsistent, (for example, -start 5 -end 3) an error occurs.
  • SBCCmd :FATAL: Error Level : 4
  • SBCCmd :FATAL: Error Code : 36865 (9001)
  • SBCCmd :FATAL: Parameter error : Must be Start page number <= End page number
When -multivol parameter is specified, the value does not mean the page number but the separate volume number. For example -start 3 outputs the third separate volume.
-multivol * Specifies to output PDF in separate volume. The error occurs when FO doesn't include the axf:output-volume-info extension property. When this parameter is specified, -start/-end can be specified as the unit of separate volume.
-2pass * 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
-base BaseURI Specifies the default base URI.
-param name=value Specifies the parameter name and the value of xsl:param used with the XSLT transformation. If the value contains a white space, please specify "name=value". -param can be specified multiply.
-fontalias name=substname Specifies font substitutions. If the option -fontalias A=B is specified, all of font family-name A in the FO file will be substituted with font B. If you are going to specify multiple substitutions, you must specify the -fontalias parameter for every substitution. You can also specify this option using the "Option Setting File". The substitution is not recursive, or is done only once.
-x Error-Level Permits setting the error level at which AH Formatter V5.0 will stop formatting and abort the job.
  1. Information
  2. Warning
  3. Recoverable Error
  4. Fatal Error
The default value is 2. Thus if an error occurs at the "warning" level or higher, the formatting process will be aborted. If a fatal error occurs, the formatting process will always be aborted.
-silent Suppresses the output of error information. Normally error information is sent to stdout or stderr.
-stdout Error information is sent to stdout only if this parameter is specified. It is outputted to stderr by default.
-stderr Error information is also sent to stderr if this parameter is specified. It is outputted to stderr by default.
-pgbar * Outputs the progress of the page generation to the console.
-v Shows the version, copyright and license information. Cannot be used with any other parameter.
-h or -? Displays a list of all the Command-line parameters.

Parameters for PDF Output

Parameter Functions
-pdfver Version Specifies the PDF version from the following:
  • PDF1.3
  • PDF1.4 (default)
  • PDF1.5
  • PDF1.6
  • PDF1.7
  • PDF/X-1a:2001 no-LT
  • PDF/X-3:2002 no-LT
  • PDF/X-1a:2003 no-LT
  • PDF/X-2:2003 no-LT
  • PDF/X-3:2003 no-LT
  • PDF/A-1a:2005 no-LT
  • PDF/A-1b:2005 no-LT
If this parameter is omitted, PDF1.4 is outputted. Impossible to specify PDF/X or PDF/A with AH Formatter V5.0 Lite.
-tpdf * Generates Tagged PDF. Ignored if PDF cannot be tagged depending on the PDF versions.no-LT
-lpdf * Generates linearized PDF optimized for the display on the Web. no-LT
-dsig * Specifies to apply a Digital Signature. When there is no signature field, a disital signature is not applied.no-LT
CAUTION: In order to apply the digital signature, PDF Digital Signature Module must be installed on your PC.
-encrypt Key-Length Specifies the key length when encrypting the PDF file during outputting. The key length can be specified as either 40 or 128 (bit). Ignored when you specify PDF 1.3.
-userpwd Password Specifies the user password required to open the PDF. The password must be less than 32 bytes.
-ownerpwd Password Specifies the owner password for PDF. The password must be within 32 bytes.
-npt * Prohibits printing the PDF file.
It is necessary to specify -ownerpwd so that this parameter is effective.
-ncg * Prohibits making changes of the PDF file.
It is necessary to specify -ownerpwd so that this parameter is effective.
-ncc * Prohibits copying the content of the PDF file.
It is necessary to specify -ownerpwd so that this parameter is effective.
-nca * Prohibits adding comments and form fields to the PDF file.
It is necessary to specify -ownerpwd so that this parameter is effective.
-nff * Prohibits filling in of form fields and signing of the PDF file. Ignored when you specify PDF 1.3. In order to make this parameter effective, other parameter settings may be required. See also the 'PDF Reference' from Adobe Systems Incorporated for more details.
-nab * Prohibits text access for screen reader devices of the PDF file. Ignored when you specify PDF 1.3.
-nad * Prohibits inserting, deleting and rotating the PDF pages. Ignored when you specify PDF 1.3.
-peb Value Specifies whether to embed the embeddable fonts in PDF or not with one of the following values.
0.Specified font
1.All fonts excluding Base14 font
2.All fonts including Base14 font
-pee Fontname Embeds the specified font in the PDF. If you want to specify multiple fonts, put commas between the fonts.
-pef * An error is not issued when font embedding fails.
-peg * An error is not issued when glyphs are missing.
-pex * An error is not issued when PDF/X or PDF/Ais generating. no-LT
-ppa Value Specifies whether to permit printing of the created PDF with one of the following values. This parameter is effective only when you specify PDF version 1.4 or later.
0.Not Allowed
1.Low Resolution Printing
2.High Resolution Printing
-picc Value Selects how to compress the color images embedded in PDF.
0.Auto
1.JPEG compression
2.ZLIB compression
3.JPEG2000 compression
This parameter is effective for images that cannot be directly embedded into a PDF or -pidc value is not 0.
-picg Value Selects how to compress the grayscale images embedded in PDF.
0.Auto
1.JPEG compression
2.ZLIB compression
3.JPEG2000 compression
This parameter is effective for images that cannot be directly embedded into a PDF or -pidg value is not 0.
-picm Value Selects how to compress the monochrome images embedded in PDF.
0.None
1.CCITT Group4
2.CCITT Group3
3.Run Length compression
4.ZLIB compression
This parameter is effective for images that cannot be directly embedded into a PDF or -pidm value is not 0.
-pidc Value Selects how to downsample the raster color images embedded in a PDF with the following values.
0.None
1.Average
2.Bicubic
3.Subsampling
When -pidc value (other than 0) is specified, a color image that has a resolution greater than -pidca dpi will be downsampled to the -pidct dpi value. The default dpi of -pidca is 108, -pidct is 72.
-pidct dpi
-pidca dpi
-pidg Value Selects how to downsample the raster grayscale images embedded in PDF using the following values.
0.None
1.Average
2.Bicubic
3.Subsampling
When -pidg value (other than 0) is specified, a grayscale image with resolution greater than -pidga dpi will be downsampled to the -pidgt dpi resolution. The default dpi of -pidga is 108, -pidgt is 72.
-pidgt dpi
-pidga dpi
-pidm Value Selects how to downsample the raster monochrome images embedded in PDF using the following values.
0.None
1.Average
2.Bicubic
3.Subsampling
When -pidm value (other than 0) is specified, a monochrome image that has resolution larger than the -pidma dpi will be downsampled to the -pidmt dpi resolution. The default dpi of -pidma is 450, -pidmt is 300.
-pidmt dpi
-pidma dpi
-pjq Percent Specifies the quality of the raster graphics when specified JPEG format by -picc or -picg using the range of 1-100(%). A higher % increases the image quality. However the file size also becomes larger. The initial value is 80.
-pcs * Specifies not to compress text and line art in the PDF.
-plr * Specifies whether the external link specified by the relative address is transformed into 'Open the file' or into 'World Wide Web link' in the PDF link properties. When -plr is specified, it is transformed to 'World Wide Web link'. When -noplr is specified, it is transformed to 'Open the file'. If the document is designed to be viewed on a browser then it is suggested to use the world wide web –plr as the default setting.
-prc Value 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
-prr dpi Specifies the resolution value of the transformed raster images from 70 to 500(dpi). This parameter is available only in the Windows version and should be set with consideration of on whether better image quality or file size is more important.
-pdfscale scale Specifies the scaling ratio of the PDF to output. A value without a unit or % value can be specified as a scale (1.0 = 100%). When -pdfwidth is specified after - pdfscale, -pdfscale will take priority. The same applies to -pdfheight.
-pdfheight length Scales the output height of PDF. Height values can be specified as a unit or a % value.
-pdfwidth length Scales the output width of PDF. Width values can be specified as a unit or a % value.
-pds * Applies the digital signature the signature field in PDF. Refer to Digital Signature for more details. no-LT
-pdss name Specifies the name of the signature information to be used when applying a digital signature. Refer to Digital Signature for more details. no-LT
-pdsc name Specifies the name of the certificate information to be used when applying a digital signature. Refer to Digital Signature for more details. no-LT

Parameters for SVG Output

Parameter Functions
-svgver Profile Specifies the SVG profile:
  • SVG1.1 (default)
  • SVGBasic
  • SVGTiny
If this parameter is omitted, SVG1.1 is outputted.
-svgip Method Specifies how to treat images within the SVG file.
0.Embeds all image files.
1. Copies all image files to the destination that is specified by -svgicp, 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 -svgicp and links.
If this parameter is omitted, it is considered as 0 and all images are embedded. Refer to Image Output in SVG Output for details of the operation.
-svgicp Directory Specifies the destination for images when '1' or 3 is selected for the -svgip parameter (Outputs the image as an external file). When a relative path is used to specify the Directory, the path will be relative to the output path specified with -o. When -o is the standard output, an error will occur if the relative path is specified. Then it is necessary to specify an absolute path.
-svgiren * Specifies whether to rename all file names to the prefix specified by -svgiprfx, or to use the original name when images are copied to the directory specified by -svgicp. When the file name is duplicated, a sequential number is added. When -svgiren is specified, all files are renamed.
-svgiprfx Prefix When images are copied to the directory specified by -svgicp, specifies the prefix of the file name. The file name will be prefixed followed by sequence number. When it is not specified, they are only sequential numbers.
-svggzip * Outputs SVG compressed in gzip.
-svgsingle * A document composed of multiple pages is outputted as a single SVG file.
-svgfmt Format When the original document has multiple pages and -svgsingle parameter is not specified, 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 -svgfmt parameter the output files will be document-01.svg, document-02.svg and so on. If this parameter is omitted, "1" is considered as specified.
-svgspn * When -svgsingle is not specified and the output SVG has only one-page, the sequential number specified by -svgfmt is not added.
-svgea * Embeds all fonts that can be embedded in the SVG.
-svgee Font-Name Embeds the specified font in SVG. If you want to specify multiple fonts, put commas between fonts.
-svgef * An error is not issued when font embedding fails.
-svgic Value Selects how to convert the raster images which may not be directly embedded in the SVG.
0.Auto
1.JPEG conversion
2.PNG conversion
When Auto is selected, monochrome, grayscale or 256-or-less-color images are converted into PNG and the rest are converted into JPEG. When this parameter is omitted, the default is Auto. Refer to Image Output in SVG Output for information on embeddable images.
-svgjq Percent Specifies the quality of the raster graphics, when it is specified as JPEG for -svgic, 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.
-svgrr dpi Specifies the rasterized-resolution value of the transformed raster images from 70 to 500(DPI). This parameter is available only in the Windows version.

Parameters for INX Output

Parameter Functions
-inxomode Value Specify the INX output mode in INX Output option
0.Text area output mode
1.Line area output mode
2.Block output mode
If this parameter is omitted, Text area output mode is adopted. Refer to INX Output Settings for details.

Parameters for TEXT Output

Parameter Functions
-tenc Encoding Specifies the encoding for TEXT Output. If this parameter is omitted, UTF-8 is adopted. See also TEXT Output Setting for more detail.
-teol EOL-mark Specifies the end-of-line code for TEXT Output. If this parameter is omitted, CRLF is adopted. See also TEXT Output Setting for more detail.

Text Output cannot be performed with AH Formatter V5.0 Lite.

Values can be added using 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

The following sample illustrates formatting sample.xml using XSL stylesheet sample.xsl and outputting the formatted result to sample.pdf.

AHFCmd -d "c:\My Documents\xml\sample.xml" -s "c:\My Documents\xml\sample.xsl" -p @PDF -o "c:\My Documents\xml\sample.pdf"

In order to use the stylesheet in the non-Windows environment, it's necessary to specify external XSLT prosessor in the Option Setting File using -i parameter.

The following sample illustrates how to load the Option Setting File options.xml, format sample.fo and send the formatted result to a printer.

AHFCmd -d "c:\My Documents\xml\sample.fo" -i "c:\My Documents\xml\option.xml" -p "EPSON LP-7100"

Return Value

When executing formatting with a Command-line Interface, if the formatting is successful, it finishes the process with the return value of 0. If the formatting is not successful, the program finishes the process with a return value of 1. If the formatting is not performed because –v is not specified, the return value is 0.

How to specify the Printer Name

The followings parameter settings apply only to the Windows version.

To send a file to a printer use a printer name from the Printers dialog in the Windows start menu or from Printers and Faxes in the Control Panel.

-p "Acrobat Distiller"
-p "EPSON LP-2500"

[Printer and FAX]

How to create a Printer Setting file

The followings are effective only in the Windows version.

In the Windows environment, applications use the DEVMODE structure to exchange information about the printer settings. Also Windows printer drivers initialize themselves according to the information of the DEVMODE structure. AH Formatter V5.0 provides XSLDev.exe as a utility to save the DEVMODE structure to a file.

When this program is launched, the "Print Setup" dialog will be displayed. You can choose printers from "Name" combo box or you can set various printer properties by clicking the "Properties" button. After you set up printer properties, click "save" button, the "Save As" dialog will be displayed. Specify a file name to save the print setup to. This will then modify DEVMODE structure as a "data file that records printer setup." You can specify this file name for the PrinterSetting property of the .NET/COM Interface or -ps Parameter of the command line interface or other interfaces. To quit this application, click "close" button.

[PrinterSetting dialog]

When a printer setting file is specified, a document is printed unless -p option is specified. The following shows how it operates.

When -collate or -copies is specified, the content of DEVMODE is overwritten.

Restrictions for Printing

See also restrictions in the Graphical User Interface.