AH Formatter FAQ

General Questions

Do you have books or other resources for learning XSL-FO?

Check out our XSL-FO resource center to learn all about the XSL-FO specification, how to create stylesheets, and download XSL-FO samples.

We have several partners that offer training and consultancy for XSL-FO, see here.

Antenna House and our partners offer XSL-FO introduction books and reference guides, see below:

Introduction to XSL-FO

Reference Guides for XSL-FO

  • XSL-FO Vollständige Referenz by Manfred Krüger – The complete German reference guide to XSL-FO with the latest Antenna House XSL Formatter V7 extensions.
  • XSL-FO Die Referenz by Manuel Montero-Pineda & Steffen Herkert – A comprehensive German reference guide to XSL-FO for all levels from beginners to experts.

Practical Use of XSL-FO and XSLT

Crane Softwrights has many free books on pratical formatting using XSL-FO and practical transformation using XSLT and XPath. Download them here

Is there a book on CSS styling for print?

Yes. We have an introduction guide for CSS styling for print. You can download it for free as a PDF or HTML+CSS zip file.

You can also purchase a printed copy of the book here.


Which should I use for formatting: CSS or XSL-FO?

CSS formatting is suitable for relatively simple structures and simple layouts (eg HTML typesetting, form typesetting, etc.). 

XSL-FO formatting is recommended for structured documents with complicated layouts such as user manuals or technical documentation. 

Check out our past webinar that talks about both formatting methods and see examples of different print publications that were produced with AH Formatter using XSL-FO and CSS stylesheets.

Contact us if you're still not sure and we'll help you out!

What is the difference between XML + XSL and XHTML + CSS?

CSS is a language for specifying HTML styles, while XSL stylesheet is a language for converting XML formatted documents into XSL-FO, XHTML, and a variety of other documents.

AH Formatter formats XSL-FO documents and (X) HTML documents ((X) HTML + CSS). Therefore, if an XML document and an XSL stylesheet are inputted to AH Formatter, it will utilize an external XSLT processor to convert them to XSL-FO or HTML before formatting.

Please refer to the manual for details about AH Formatter's typesetting flow.

What is MathML?

MathML is an abbreviation for Mathematical Markup Language, which is a markup language for expressing mathematical descriptions such as mathematical expressions in XML format. The formula "x + 2" is expressed as follows.

<math> <mi> x </ mi> <mo> + </ mo> <mn> 2 </ mn> </ math>

<mi> is a distinguished name such as a variable, <mo> is an operator such as +,-, and <mn> is a numerical value.

How do I format MathML with AH Formatter?

There are two ways to format MathML:

  • Write directly to FO, HTML, and XHTML 
  • Externally reference (link) the created MathML file and treat it in the same line as the image.

Both formatting methods must meet the conditions for determining whether it is MathML. Judgment conditions for writing directly differ depending on FO, HTML, and XHTML. The judgment condition of the MathML file is that the MathML namespace (xmlns = "http://www.w3.org/1998/Math/MathML") is specified in the math element. You can output MathML to PDF if it is formatted correctly. 

Are the area tree specifications publicly available?

We do not guarantee the result of formatting the AreaTree, but we have released it on GitHub as a resource for those who are currently using or are considering using the area tree.

How do you create XML and XSL data that will be the basis for automated formatting?

The operation and creation method of the input files varies from customer to customer. AH Formatter introduces case studies (originally in Japanese, but can be translated in the browser). 

Contact us with details about your project and we'll help you out!

Is it possible to process XSL-FO files in content production such as DITA?

Yes, you can format DITA files to PDF using AH Formatter. You can find out more information about our DITA solution here

Is there a track record of JATS?

There is a case of Nakanishi Printing as a result of JATS of AH Formatter. There is a track record of using AH Formatter for formatting JATS, but it is not open to the public.

→ Japanese full-text XML (JATS) formatting using AH Formatter (Nakanishi Printing Co., Ltd.)

We are a member of the "Academic Information XML Promotion Council XSPA" and have opened an XSLT style sheet to popularize JATS. It is published as a source.

→ Introduction of XSLT stylesheet for formatting JATS

What industries is AH Formatter used in and what kinds of publications can it produce?

AH Formatter is used in production for a wide range of applications in industries worldwide including auto, aerospace and defense, healthcare, government, manufacturing, telecom, financial, publishing and transportation.

Check out some of our use cases and extensive examples for what you can do with AH Formatter.

Installation and License Requirements

During installation, there are "Register COM" and "Add PATH". What do they mean?

COM registration is required when launching AH Formatter using the COM interface. It is not necessary when using with other interfaces.

Adding PATH is to add the AH Formatter installation PATH to the system environment variable PATH. Whether it is necessary or not depends on the operation of the AH Formatter version you are using, so check it if necessary depending on the operation mode. Just adding it to the environment variable PATH does not affect other applications, so normally you can install it with the check box checked.

After installing AH Formatter, the dialog window shows "This program may not have been installed correctly". What should I do?

When you install AH Formatter on Windows 7, the "Program Compatibility Assistant" dialog window may appear, but the installation of AH Formatter has been completed successfully. Click on "This program installed successfully" or the "Cancel" button to close the dialog.

What operating systems does AH Formatter support?

AH Formatter supports Windows, Linux, and MAC. Specific OS details can be found here.

Does AH Formatter V7 on Windows also work with "Microsoft Visual C ++ 2015-2019 Redistributable"?

Yes it does.  The Microsoft Visual C ++ 2015 runtime library is required for AH Formatter V7 Windows version to work. Therefore, if you do not have Microsoft Visual C ++ 2015 when you install the product, you will install the redistributable package, but if it is already installed in the runtime environment, use it.
As for the question "Microsoft Visual C ++ 2015-2019 Redistributable", it seems that Microsoft has integrated the redistributable package 2015 2017 2019 from 2019 into one package.
→ Download the latest supported Visual C ++
If you have installed the packages in the "Visual Studio 2015, 2017 and 2019" category here, it will look like Microsoft Visual C ++ 2015-2019 Redistributable instead of Microsoft Visual C ++ 2015. AH Formatter V7.0 Windows version also works with this package.

I am using a 64-bit operating system, but I want to compile the app itself that uses AH Formatter as a 32-bit app. Is that okay?

The 32-bit version of AH Formatter can be installed in a 64-bit OS environment, so if you want to compile your application as 32-bit, you have the option of using the 32-bit version of AH Formatter as well. If you are using the AH Formatter 64-bit version, please check the operation with the evaluation version in advance .
When operating the AH Formatter 32-bit version in a 64-bit OS environment, there are the following precautions when using each interface.

  • .NET interface: Specify / platform: x86.
  • COM interface: Use the 32-bit version of WSH (C: \ Windows \ SysWOW64 \ cscript.exe).
  • Java interface: Use the 32-bit version of the JDK.
  • C / C ++ interface: Compile for Win32 platform.

How many licenses do I need?

The number of licenses of non-virtualized environment is based on the number of CPU/processors. When using with multiple CPUs, licenses for the number of CPUs are required. Both single-core CPUs and dual-core CPUs count the number of CPUs as one. More details can be found on our Licensing page

Are there any restrictions when deploying AH Formatter in a virtualized environment?

When running AH Formatter in a virtual environment (such as VMware or Hyper-V), there are no functional restrictions as long as the virtual environment guarantees the same operation as in the real environment.

Do you have a Docker image?

Yes. AH Formatter publishes a Docker image for Linux 64-bit version in the command line interface on Docker Hub ( Docker image of AH Formatter V7.0 ). If you are already using the corresponding version of Linux 64-bit, you can run the Docker image with that license file. If you would like to evaluate it, please contact us.

For more information on Docker images and how to run them, see the Docker image page.

Are there any restrictions when introducing AH Formatter to cloud services?

There is no problem if the OS on the cloud service is guaranteed to work with AH Formatter. For example, we have been operating the cloud-based digital publication production Web service CAS-UB , which uses AH Formatter internally, since 2011.

Is AH Formatter thread-safe?

Yes, AH Formatter is designed to be a multithreaded application.

What is the Java interface of AH Formatter built with?

The Java interface of AH Formatter is built using Java SE 6 for the Macintosh version and J2SE5.0 for the rest.

Will the AH Formatter I am currently using continue to work even after the maintenance period has expired?

Yes, AH Formatter will continue to work even after the maintenance period expires. However, if you try to upgrade to a later version or maintenance release (MR) after the maintenance expires, it will operate as an evaluation version. If this happens, reinstall the version released before the end of the maintenance period.

What are the differences between V6 and V7? How do I upgrade?

You can find the full list of technical notes in formatting differences between versions here.

You can upgrade to a later version for free if you have an active maintenance contract. If you do not have an active maintenance contract, here are your options.

How do I check the license for the version and serial number?

For the Windows version of AH Formatter, select [Help]-[About AH Formatter Vx.x] from the GUI menu bar to display the license and version information in the dialog window. In other cases, version information is displayed by executing it with the -v parameter specified in the command line interface. The version notation is
"AH Formatter Vx.x R1 ..." for the first edition,
"AH Formatter Vx.x MR1 ..." for the revised first edition, and
"AH Formatter Vx.x MR2 ..." for the first edition. The second revised edition
is shown. 

For example, in the case of AH Formatter V7.0 revised 1st edition, it will display as: AH Formatter V7.0 MR1 for Windows (x64) : (2020-04-06T11:51+09)

What is the ECCN of AH Formatter?

The ECCN (Export Controlled Item Classification Number ) of AH Formatter is "EAR99".

Product Functionality

What should I do when I output to PDF and get this error message? 16390 (4006): PDF output error (3335). PDF version setting is lower than that of imported PDF.

The embedded PDF version must be less than or equal to the output PDF version.
For the permitted combinations with PDF / X etc. , refer to the table in "PDF Output"-"Embedding PDF" in the manual .

Is it possible to prevent unnecessary line feed codes from being included when copying and pasting multiple lines of text from a PDF?

This result depends on your PDF viewer because the line feed code is not inserted in the data. If you are using Adobe Acrobat or Adobe Reader and you output it as " tagged PDF " from AH Formatter,  the text block can be copied and pasted as continuous text.

Can AH Formatter output PDF / X?

Yes.  In addition to PDF / X, you can also output PDF / A, PDF / UA, and tagged PDF. For more details, see "PDF output" in the manual .

In PDF / X output, I specified the output intent in the URL of the ICC profile, but the output condition identifier of the output PDF is "Custom". Is this a bug?

Due to the PDF / X specifications, if the URL of the ICC profile is specified for the output intent, the default value of the OutputConditionIdentifier will be "Custom". Before the 6th revision of AH Formatter V6.6, the output condition identifier inferred from the specified ICC profile was output, but originally the output condition identifier must be specified by the user, and AH Formatter V6.6 It has been corrected in the 7th revised edition. Specify the output condition identifier after #OutputConditionIdentifier = in the src property of fo: color-profile as shown in the following example.

  <fo: declarations>
<fo: color-profile

src = "url ('file: /// C: / WINDOWS / system32 / spool / drivers / color / JapanColor2001Coated.icc # OutputConditionIdentifier = JC200103')"

color-profile-name = "# CMYK"


</ fo: declarations>

When I try to output PDF / A or PDF / X with Distiller, an error occurs. How do I fix this?

Specify PscriptPassThrough = "false" in the option settings file.
→ PscriptPassThrough (manual)

Is the color of the image converted when outputting PDF / X1-a?

CMYK and gray images are outputted as they are, but all RGB images are converted to CMYK images and output. This is because PDF / X-1a does not support RGB. It also does not support transparent images etc. For more details on the features of PDF / X, refer to "PDF Output"-"PDF / X" in the manual.

What is the resolution of the PDF produced by AH Formatter?

PDF does not have the concept of resolution. 
→ What is PDF resolution? (1) , (2)

Can I create PDF form fields?

You can create text fields, button fields, selection fields, and digital signature fields by using AH Formatter's original extension. For more information, see "XSL / CSS Extensions"-"Form Fields" in the manual.

Is it possible to set security settings like a password when producing a PDF?

Yes. We offer various security settings such as password settings and restrictions for printing and editing. If you need to set a password for opening the document, the user-password in the option setting file is applicable.

Is it possible to give the PDF a non-printable setting?

Yes. You can limit the printing of PDFs by specifying "none" for printing-allowed in the option setting file. If you want to restrict printing, you need to specify the owner password with owner-password. In the graphical user interface (GUI), it can be set in the "PDF Option Setting" dialog- "Security" tab.

Can the PDF output from AH Formatter be displayed regardless of the font installed in the OS?

Yes. Set font embedding when producing a PDF. By default, AH Formatter embeds all embeddable fonts except the 14 basic European fonts. Note that fonts that are not allowed to be embedded cannot be embedded in PDF. For details, see "PDF output"-"Font embedding" in the manual.

Are the only fonts embedded in the PDF the ones that are used in the document?

In most cases, only the characters used in the document will be embedded (subset embedding). But the "embed-subset-font-percentage" option configuration file allows you to use subset fonts when necessary. It is also possible to embed all fonts, including unused characters, with full set embedding.

What if I always need to embed the full set of fonts in the output PDF?

Specify "0" for "embed-subset-font-percentage" in the option settings file. However, please note that the file size will increase as more fonts are embedded in the full set.

I generated a PDF with font-family = "'Times New Roman'". When I open the PDF in Adobe Acrobat and check the file properties, the font name is displayed as "TimesNewRomanPSMT". Why?

TrueType and OpenType fonts have string data called "name table". Information such as the font family name and font copyright is defined here. For TimesNewRoman, the "Font Family name" is "Times New Roman", but "TimesNewRomanPSMT" is defined as the "Postscript name". In Adobe Acrobat, select "File"-"Properties"-"Font" to display the Postscript font name. Therefore, the same font may display different names like this.

Is it possible to specify MS Mincho as the standard language font and Arial as the European font individually? When I specified font-family = "'MS Mincho', Arial", all of them became MS Mincho.

Yes.  You need to set:

font-family = "Arial,'MS Mincho'

The font specified in font-family has priority at the beginning. If MS Mincho is listed first, Arial is not used because MS Mincho can also display European languages. If Arial comes first, the European language is Arial, and Japanese cannot be displayed by Arial, so MS Mincho is used.

I have specified multiple fonts in font-family, but the fonts used in V6.4 MR2 and later and earlier versions have changed. Why?

In AH Formatter V6.4 MR2 , the processing when the option setting font-selection-mode = "6" (default value) was reviewed. Before the specification change, "when font-selection-strategy =" character-by-character ", the first font with glyphs is adopted.", But after the specification change, "the first font with glyphs is adopted." If there is a glyph, the font will be adopted even if it is not font-selection-strategy = "character-by-character". Therefore, if multiple fonts are listed in font-family, a different font may be selected. If you specify font-selection-mode = "5" in the option setting file, the same font as before will be applied.

How do I add fonts that are installed on Windows 10 but not available in AH Formatter?

Specify the location where the font is installed in the font construction file (font-config.xml).
In Windows 10, fonts with general user privileges are installed in C: \ Users \ [user name] \ AppData \ Local \ Microsoft \ Windows \ Fonts. AH Formatter V7.0 refers to that folder by default, but if you are editing a font construction file or if you are using a version earlier than AH Formatter V7.0, it will not be referenced, so go to the font construction file. Please add the corresponding folder as follows so that it can be referenced.
  <font-folder path = "C: \ Users \ [username] \ AppData \ Local \ Microsoft \ Windows \ Fonts" />
In AH Formatter V7.0
  <font-folder path = "@@ USERWINFONTS @@" />
You can refer to it by adding like.

Can I use Google Fonts?

Yes.  More details on the fonts supported by AH Formatter can be found in the online manual

Can I use Adobe Fonts?

Adobe fonts are supported in AH Formatter V7.0. They can be used on Windows or Macintosh. For more information on using Adobe Fonts, see "Fonts"-"Adobe Fonts" in the manual.

Is it possible to change the font size between European fonts and Japanese fonts?

Yes. You can change the font size of a particular font with font-size-adjust in the font construction file. It is also possible to change the base line of a specific font using Baseline-Adjust.
This question was for a document that had a mixture of English and Japanese. By specifying font-family = "European font, Japanese font", the European font is applied to English and the Japanese font is applied to Japanese. However, since the characters in European fonts look smaller than Japanese fonts, there was a request to increase the font size only in European languages.

How do I adjust the baseline of a specific font?

When it comes to "adjusting the baseline of a specific font ", it seems better to specify it in the " font construction file " rather than changing it with baseline-related attributes in the FO .
1) Add the <font-entry> element to the child element of <font-folder>.
2) Specify the font file name in the file attribute.
3) Specify any value in the baseline-adjust attribute.
For example, if you specify baseline-adjust = "0.1", it will be adjusted to the position where this value is added to the baseline specified in the FO. The specification can also be a% value, such as "10%".
<font-folder path = "font folder">
 <font-entry file = "font file name" baseline-adjust = "-0.05" />
</ font-folder>

In previous versions, I used axf: alt-glyph to specify alternative glyphs for characters, but this does not work in AH Formatter V6.5 and later. Why?

With the implementation of axf: font-feature-settings in AH Formatter V6.5, axf: alt-glyph has been deprecated. If you specified axf: alt-glyph = "1" in the previous version, the alt feature of the GSUB table of the font will be used, so specify as follows.

  <fo: inline axf: font-feature-settings = "'aalt' 1"> Kuzu </ fo: inline>

I specified in the option settings file to change the MathML formula font, but it didn't work. How do I change the font?

Specify "fontfamily" instead of "font-family". Please note that the attribute name related to the MathML font specification in the option setting file does not include a "-" (hyphen) like this "fontfamily".
→ "Option setting file"-"MathML setting" (manual)

When %20 is used in the image file name, the behavior differs depending on whether it is a relative path or an absolute path. Is that correct?

If there is a folder containing "#" in the path that specifies the image, formatting may not be performed normally. Is this a specification?

"#" is a fragment delimiter. In file:///C:/dir/foo#bar.png, the resource actually accessed is file:///C:/dir/foo. If you want to access the resource foo # bar.png, use url ('foo% 23bar.png').
The above is excerpted from "Technical Materials"-"URI" (manual) .

The output of SVG is not the same size as the original file. When I formatted the SVG file using width = "497.724" height = "335.787" with AH Formatter and checked the AreaTree, the corresponding image output becomes width = "373.293pt" height = "251.84pt". Why?

The SVG "width =" 497.724 "height =" 335.787 "" has no units. In this case, the unit is px. Since it is displayed in pt (1/72 inch) in AreaTree, it will be the same value if the units are combined (example: 497.724 / 96 * 72 = 373.293pt).

The EPS image output is in low resolution. Is there a way to use EPS at a high resolution?

When AH Formatter has an image displayed in EPS, it outputs the image. If the EPS image displayed has a low resolution, so the result will be as reported. If the display image does not exist, replace it with a replacement image.
It is possible to specify Adobe Distiller or Ghostscript as an external processor in the option setting file and convert EPS to PDF for output. For details, see "Option setting file"-"PDF output settings" in the manual.

What happens to the size when the size is specified in px (pixels)?

If you specify the page size, margin, etc. in px units, AH Formatter allows you to specify the conversion rate in px units in the option settings. The initial value is 96dpi, and it is usually calculated based on this value.
→ pxpi attribute of option setting file
If the size is not specified in the background image or embedded image, follow the specification of axf: background-image-resolution or axf: image-resolution. This extended attribute behaves differently by default in XSL and CSS.

Is it possible to generate barcodes?

Yes. Various barcodes can be generated by using the Barcode Generator Option which is an option for AH Formatter.

Is it possible to specify the vertical and horizontal sizes such as the QR code created by the barcode generator option?

Yes. For XSL-FO, specify the size with content-height or content-width in the fo: external-graphic element. For HTML, specify height and width in the img element. For CSS, specify height or width in the img element. However, please note that if you change the aspect ratio or make the image too small, it may not be readable.

Is there a use case example for generating a QR code?

Here is an example of introducing the QR code for Barcode Generator Option for AH Formatter: Used as a housing information magazine, property leaflet, contract creation tool (Koryo Sumihan Co., Ltd.)

You can find an XSL-FO sample for Barcode Generator here. 

When formatting with AH Formatter V7.0, the error message "Breaking Paragraphs into Lines is unsupported" is displayed. What is this?

AH Formatter V7.0 implements Breaking Paragraphs into Lines (BPIL) as an algorithm for line division processing in European typesetting. The conditions to which BPIL are applied include:

-The block in which axf: line-break = "bpil" is specified
-The algorithm is not specified in axf: line-break and the language is specified in bpil in the option configuration file. It is a block.

In axf: line-break, you can specify "line" that does not apply BPIL or "bpil" that divides lines by BPIL, but if neither is specified, it follows the specification of bpil in the option setting file. The default value of bpil in the option settings file is "Latn Grek Cyrl", so if a language (English, Greek, Russian, etc.) that is typical of Latin, Greek, and Cyrillic is specified, BPIL will be used. 

However, BPIL does not apply to blocks that contain floats or require BIDI processing so AH Formatter V7.0 will display a warning message in these cases. For cases where BPIL does not apply, refer to Line Breaking in the manual. 

If you specify axf: line-break = "line" or specify bpil = "" in the option setting file to typeset, BPIL is not applied and no warning message is displayed.

How can I keep certain words from being hyphenated?

You can prepare an exception dictionary and register words that are not what you want with standard hyphenation processing. For details, see Hyphenation-Exception Dictionary in the manual .

Is it possible to prevent line breaks in the middle of a particular word?

From AH Formatter V7.0, you can register split-prohibited or unbreakable words in the option setting file. For details, see Option setting file - Formatting settings in the manual .

Is it possible to specify the space between the tab symbols?

Yes. AH Formatter provides extensions that can express tab structures. See the XSL/CSS Extensions-Tabs in the manual and an XSL-FO sample for Tabs (<axf: tab>, axf: tab- *) in our XSL-FO Samples Collection.

What languages does AH Formatter support?

A complete list of supported languages can be found in the manual under About AH Formatter - Supported Scripts and Languages.

Is there a limit on the number of concurrent processes that can be executed?

There are no particular restrictions, but for documents that consume a lot of memory, the memory capacity of the machine is required accordingly.

Is it possible to hide error level 1 error messages?

It is not possible to hide the error message output by specifying the error level, but it is possible to hide the display of a specific error code. AH Formatter provides no-disp-warnings in the option setting file. You can hide the error message by specifying the error code you want to suppress (the error code and  message are displayed together). For more details, see "no-disp-warnings" in the manual.

Why am I getting this error message, "SYSTEM ERROR: Out of memory"?

As the message says, "Out of memory" is probably due to insufficient memory. For example, it may occur when the required memory cannot be secured due to typesetting of a large-scale document. This depends on the contents of the document, machine specifications, etc., so we cannot answer how much memory is needed. In addition, the characteristics of documents that may run out of memory are also described in "Technical Documents"-"Typesetting of Large-Scale Documents" in the manual. The "2-pass typesetting" described here is an optional setting to solve it. 

I have specified overflow = "error-if-overflow" to display an error when overflowing. What do (inline XXXpt) and (block XXXpt) mean in the error message?

The error message displayed when overflow = "error-if-overflow" is specified has the following format, for example:
14850 (3A02): Area overflow: fo: block (inline 31.969pt) Page 1 (1).
14850 (3A02): Area overflow: fo: block-container (block 23.811pt) Page 1 (1).
There are two types of overflow judgment. "(inline XXXpt)" means inline direction = line traveling direction (overflow to the right (width) in general horizontal writing), "(block XXXpt)" means block direction = paragraph. The direction of travel (overflow to the downward direction (height) in the case of general horizontal writing). The numbers are the overflow dimensions for each area.

Does AH Formatter have the same feature as Adobe Acrobat to "Enable annotations and rulers"?

Unfortunately, this is a feature unique to Acrobat (not a feature provided in the PDF specification) and cannot be achieved with products other than Acrobat.



Does AH Formatter support JavaScript?

No, JavaScript is not supported.


Is it possible to change the display position of the revision bar between even and odd numbered pages?

This can be achieved with the axf: revision-bar-position / CSS -ah-revision-bar-position property of the original extension.

When I specified start-indent = "inherit + 2em", I got this warning: "Invalid property value". How should I specify it?

Specify start-indent = "from-parent (start-indent) + 2em".
For reference, " inherit" in Extensible Stylesheet Language (XSL) Version 1.1 cites ""inherit " is not allowed as an expression mixed with operations. The same functionality is provided by the from-parent() function, which can be mixed with operations."

In order to make a new line was specified, but there is no new line. Why?

The # x0A code is treated as a normal character code. It is then converted to U + 0020 (space) by the linefeed-treatment property (initial value treat-as-space). If you want to perform line feed processing with # x0A linefeed-treatment="preserve", specify fo: block. Please note that linefeed-treatment is an inherited property.


Why do characters and images overlap when I format HTML with AH Formatter?

The CSS stylesheet had the following specifications:

  html {
font-size: 9pt;

line-height: 15pt;

-ah-line-stacking-strategy: font-height;


With this -ah-line-stacking-strategy: font-height, the line height is fixed, so even if you have a large image, the line height will not increase. Therefore, a large image that extends beyond the line height will overlap the text.

  <img alt = "..." src = "../20070117.PNG" width = "507" height = "296" />

-Ah-line-stacking-strategy: font-height; cannot be used for blocks that contain inline images.

The print preview display for browsers like Internet Explorer and Mozilla Firefox are significantly different from the print preview in AH Formatter. For example, the background and screen photos are not displayed in the print preview of the browser, but when formatting with AH Formatter, the photos are displayed. Why is this?

In Internet Explorer and Firefox, if "Print background color and image" is turned off in "Page Setup", the background color and background image will not appear in the print preview display.

When I convert a web page to PDF with AH Formatter, why does the width of the paper extend beyond A4?

Make sure you haven't specified a width for the paragraph or table. For example, if width = "1000px" is specified, the default width of AH Formatter is 96dpi (dot per inch), so the width is about 10.4 inches (26.46cm), which extends beyond the width of A4.

I want to make sure that the chapter starts with an odd page in CSS typesetting. If the previous chapter ends with an odd page, is there a way to insert a blank page and adjust it?

There is a way to specify the page break position such as page-break-before / page-break-after. For example, "page-break-before: right;" forces a page break so that the next page is on the right. If the previous chapter ends with an odd (right) page, a blank page will be inserted between the chapters so that the next chapter will be an odd (right) page.

If right justification is specified for the contents of a top-left margin box, the contents shift to the right side of the page. How do I prevent that from happening?

If you have @ top-left and neither @ top-center nor @ top-right, its width will fill the width of the page area unless you specify width. Therefore, right justification is closer to the right side of the page. If you also specify @ top-center and @ top-right, they will be shared with their width. If you specify width in the margin box, the contents will span across the specified width.

Is there a way to avoid sorting the last page of the two columns?

Please specify "-ah-column-fill: auto;".
CSS3 specification: CSS3 Multi-column layout: column-fill

How can I repeat the table header?

You can repeat it by using thead element in the table header. For example, in the case of the following table



<th class = "TableWidth1"> Address </ th>

<th class = "TableWidth2"> Name </ th>

</ tr>



<p> Aiueo </ p>

</ td>


Do the following:



<th class = "TableWidth1"> Address </ th>

<th class = "TableWidth2"> Name </ th>

</ tr>

</ header>




<p> Aiueo </ p>

</ td>


A number with a multiple digits protrudes from a table cell with a fixed width. Is it possible to automatically start a new line so that it does not stick out?

AH Formatter line break position candidates are determined by processing "Line Breaking Properties" from the UAX # 14: Unicode Line Breaking Algorithm. In this line splitting rule, consecutive numbers cannot be split (line feed) in the middle. In CSS, the default value of the word-wrap property is "normal", so text overflows from space when line breaks are not possible. Specify "break-word" in the word-wrap property.

Block elements and table cells with borders and padding are larger than the specified width. Why?

CSS has a property called box-sizing. It specifies whether to include the border width and padding value when width and height are specified for the block element. The default value is "box-sizing: content-box;", which means that the value specified by width is the width of the content and does not include the border width or padding value. If you specify "box-sizing: border-box;", the width will include the border width and padding value.

Is it possible to keep the HTML link information and refer to it directly in the PDF output?

When converting HTML to PDF with AH Formatter, the link looks like this:

  1. Internal links in one HTML can be used as PDF if they are internal links such as <a href="#foo"> ~ </a>.
  2. Suppose you have a link (external link) from HTML1.html to HTML2.html, convert HTML1.html to HTML1.PDF, and convert HTML2.html to HTML2.PDF. At this time, the link <a href="HTML2.html"> ~ </a> is a link from HTML1.PDF to HTML2.html. If you want to change it to a PDF link, you need to change the link to <a href="HTML2.PDF"> ~ </a> in advance.

Can I resize the tab text?

In CSS, you can define the treatment of the tab character (U + 0009) with a property called tab-size. The initial value is 8. If you specify a numerical value, it will be a multiple of half-width space (U + 0020). It is also possible to specify the length with a unit. If you specify tab-size in HTML other than the pre element, you must also specify "white-space: pre-wrap;".


Is it possible to skip two columns on a three-column page?

AH Formatter implements advanced float placement features with float extensions. This makes it possible to arrange columns across columns. For details, see the "Float extension" in the manual and the "Multi-column float examples (<fo:float>, axf:float-reference, axf:float-x, axf:float-y)" on our XSL-FO Samples page



When comparing the results of AH Formatter V7.0 and the previous versions, the line feed position may be different. Did the specifications change?

In the Line Breaking section in the manual, candidates for line breaking positions are determined by the processing of "UAX # 14: Line Breaking Properties". The links are different for each version of AH Formatter.
These "UAX # 14: Line Breaking Properties" pages list the changes as "Modifications". In addition to this Unicode line partitioning specification, AH Formatter has added its own line partitioning rules, and in V7.0, BPIL has been implemented to handle line partitioning in consideration of paragraph balance. Therefore, the line break position may change depending on the version. See "Line Breaking" in the manual for more details.

Are Thai, Lao, Khmer, and Burmese (Myanmar) line-separated word by word?

Lines are split word by word. The ICU (International Components for Unicode) library determines the line break position. For words that still have line breaks, you can set the line break prohibition by registering the word in the exception dictionary of AH Formatter. For details, see "Hyphenation"-"Exception Dictionary" in the manual.

Please tell me about line breaks for colons and commas.

AH Formatter V7 processes line breaks according to the Unicode specification "UAX # 14: Line Breaking Properties". Within this specification, both colons (U + 003A) and commas (U + 002C) are classified in the character class IS class. Periods (U + 002E) and semicolons (U + 003B) are treated in the same way. This IS class character cannot be line-breaked (newline) immediately before it (without the space character). Also, if this character is followed by a number or alphabet letter, you cannot split the line there. Therefore, there is usually no line break in the middle of a string like in the example below:
  • 100.000
  • Antenna, House
  • www.antenna.co.jp
  • Sample: 123,000,000.000


I specified the output condition identifier as src = "# OutputConditionIdentifier = Black & White" in , but an error occurs during formatting. What's wrong?

The description of the src property value follows <uri-specification> (*). If the property value string contains spaces or &, it must be percent-encoded (URL-encoded). If you specify an inquiry, please write src = "# OutputConditionIdentifier = Black% 20% 26% 20White".

For details on <uri-specification>, see "Technical data"-"URI" in the manual .

While formatting, the following error occured: "8195 (2003): FO transformation is failed. Security settings do not allow the execution of script code for this stylesheet." Is there a workaround?

The part of this error message after "In security settings ..." is the message output from the XSLT processor, not the AH Formatter. If you are using the Windows version, MSXML will be selected unless specified by the option settings. This error message is outputted during the XSLT conversion in MSXML6. Security-related changes have been made in MSXML6, and it seems that this is due to the effects (for MSXML6, refer to MSXML Security Overview).

If you encounter this error, you may be able to resolve it by changing the MSXML properties. AH Formatter allows you to specify MSXML properties in the options configuration file. If you want to allow the script code to run, <msxml name = "AllowXsltScript" value = "true" />
will help.

For more details, see "Option setting file"-"XSLT setting" in the manual.