Graphics

Any graphics as the external files can be specified to src property of <fo:external-graphic> or axf:background-image property of <fo:simple-page-master>. AH Formatter V6.4 detects the graphics format automatically. When the value of the content-type property is specified, it is assumed, then detected whether it conflicts or not. As the result if the specified value conflicts, then additional auto-detect will be done. In case of the image via HTTP, the content-type is given from the HTTP header. At that time it's assumed in preference to the value of the property.

When an external file is an XML file, a fragment can be specified. For instance, the MathML part given in the XML file

<?xml version="1.0"?>
<root>
 ...
 <m:math id="math-1" xmlns:m="http://www.w3.org/1998/Math/MathML">
  ...
 </m:math>
 ...
</root>

can be specified as

<fo:external-graphic src="url('file.xml#math-1')"/>

so that the part can be referred to.

The data scheme (RFC2397) can be specified to src property of <fo:external-graphic> or axf:background-image property of <fo:simple-page-master>. In other word, the content of the graphics can be specified in do directly without preparing the external file.

<fo:external-graphic
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAB
3RJTUUH1AIFCDIuN9BfzQAAAAlw ... ="/>

It's not necessary to specify the media type (content-type) in the data scheme, if specified, it is assumed.

CAUTION: Please be sure that with data scheme, a parameter delimiter is a semicolon (;) a data delimiter is a comma (,).

The jar scheme defined in JarURLConnection can be specified. This is effective to JAR or ZIP and possible to specify the entry in it.

jar:http://www.foo.com/bar/baz.jar!/COM/foo/Quux.png

What is specified from after the first separator !/ is considered as the entry specification. The nest of JAR or ZIP is not supported.

AH Formatter V6.4 supports the following types of graphics. Unless otherwise noted they are supported across all platforms; Windows, non-Windows.

See also Image Output in the PDF Output section.
See also Image Output in the SVG Output section.
See also Image Output in the PostScript Output section.
See also Graphics in the INX Output section.
See also Graphics in the MIF Output section.
See also Image Output in the XPS Output section.

When the specified image cannot be acquired because the image is not existent, etc., a dummy image will be displayed instead. However if the image is a background-image, a dummy image will not be displayed.

BMP

Supports Windows Bitmap. The content-type is "image/bmp".

JPEG

Supports JFIF (JPEG File Interchange Format). The content-type is "image/jpeg".

JPEG2000

Supports JPEG2000 of the following format.

PNG

Supports Portable Network Graphics Format with the following restrictions:

The content-type is "image/png".

TIFF

Supports the TIFF files of TIFF Revision 6.0 specification.

Supports the following color expression.

Restrictions:

The content-type is "image/tiff".

GIF

Supports Graphics Interchange Format with some restrictions.

The content-type is "image/gif".

WMF

Supports Windows Metafile. The image quality is maintained by embedding the vector image in the PDF, SVG, PostScript. The following restrictions currently exist:

WMF in gzip file format is also supported. The content-type is "image/wmf".

EMF

Supports Enhanced Metafile. The image quality is maintained by embedding the vector image in the PDF, SVG, PostScript. The following restrictions currently exist:

EMF in gzip file format is also supported. The content-type is "image/emf".

EPS

Supports Encapsulated PostScript. When there is a preview image in EPS, the image can be outputted. When there is no image, a dummy image will be reflected in the GUI. When generating PDF using Adobe Distiller or outputting to a PS printer or PostScript Output, a PostScript code in EPS is outputted instead of a preview image.

In the environment where Adobe Distiller and Ghostscript are installed, you can utilize them when outputting EPS to PDF (However, you cannot embed EPS to Tagged PDF). At that time EPS can be embedded in PDF as PDF. Please set EPS-processor in the Option Setting File.

CAUTION: In Adobe Distiller, there may be a restriction on the PDF size that can be created. The size of EPS needs to be within the restriction that Adobe Distiller has. See also "PDF Reference".

It is possible to embed EPS code directly in FO. Therefore it is possible to embed EPS code in PDF with Adobe Distiller, etc. The following is a sample using <fo:instream-foreign-object>.

<fo:instream-foreign-object><![CDATA[%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 0 0 84 43
%%Pages: 0
%%Creator: Antenna House
%%Title: Green Rounded Box
%%CreationDate: 10 Feb 2003
%%LanguageLevel: 2
%%EndComments
%%BeginProlog
%%EndProlog
%%BeginSetup
%%EndSetup
%%Page: 1 1
%%BeginPageSetup
%%EndPageSetup
0 128 0 setrgbcolor
0.1 setlinewidth
newpath
0 5 moveto
0 43 84 43 5 arct
84 43 84 0 5 arct
84 0 0 0 5 arct
0 0 0 43 5 arct
closepath
gsave
stroke
grestore
fill
%%PageTrailer
%%Trailer
%%EOF
]]>
</fo:instream-foreign-object>

It is not necessary to have the CDATA section set, but appropriate character references are required.

EPS can be created by various kinds of software. For this reason, some of the EPS files may not generate the desired results when processed by AH Formatter V6.4.

The content-type is "application/postscript".

SVG

Supports Scalable Vector Graphics (SVG) 1.1. AH Formatter V6.4 greatly enhances the display quality of SVG in PDF, PostScript through a newly developed SVG native output engine. Please refer to "SVG Conformance" for more details. SVG in gzip file format is also supported.

It is also possible to describe SVG code directly in FO. The following sample uses <fo:instream-foreign-object>.

<fo:instream-foreign-object
    width="100mm" height="100mm"
    content-width="96mm" content-height="72mm"
    display-align="center" text-align="center">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 480 360">
 <circle cx="100" cy="100" r="50" fill="none" stroke="black"/>
 <circle cx="220" cy="100" r="35" fill="red" stroke="black"/>
 <circle cx="340" cy="100" r="20" fill="black" stroke="lime" stroke-width="4"/>
 <circle cx="100" cy="260" r="20" stroke="lime" fill="yellow" stroke-width="4"/>
 <circle cx="220" cy="260" r="35" stroke="none" fill="blue"/>
 <circle cx="340" cy="260" r="50" stroke="red" fill="none" stroke-width="10"/>
</svg>
</fo:instream-foreign-object>

In FO, the judgment of being SVG is based on whether the <svg> element has the correct SVG namespace. If the <svg> element has the correct SVG namespace, it's regarded as SVG. If not, it's not regarded as SVG. In HTML, it's regarded as SVG only with the <svg> tag.

If you want to include the DOCTYPE declaration in FO, please enclose it with the CDATA sections as follows. (Example of SVG1.1)

<fo:instream-foreign-object>
<![CDATA[
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 480 360">
  ...
</svg>
]]>
</fo:instream-foreign-object>

The typical content-type is "image/svg+xml".

MathML

Supports Mathematical Markup Language (MathML) Version 3.0 2nd Edition. It's possible to render high resolution image in PDF, SVG, PostScript because of the direct creation engine. Please refer to "MathML Conformance" for more details. See also MathML Settings for fine tuning the rendering of MathML.

CAUTION: With AH Formatter V6.4 Lite, the original rendering function of MathML is an option. You will need to purchase "AH Formatter MathML Option" separately.

It is also possible to describe MathML code directly in FO. The following sample uses <fo:instream-foreign-object>.

<fo:instream-foreign-object>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
 <mi>y</mi><mo>=</mo><mi>x</mi><mo>&#x2212;</mo><mn>1</mn>
</mrow>
</math>
</fo:instream-foreign-object>

In FO, the judgment of being MathML is based on whether the <math> element has the correct MathML namespace. If the <math> element has the correct MathML namespace, it's regarded as MathML. If not, it's not regarded as MathML. In HTML, it's regarded as MathML only with the <math> tag.

If you want to include the DOCTYPE declaration in FO, please enclose it with the CDATA sections as follows.

<fo:instream-foreign-object>
<![CDATA[
<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 3.0//EN"
  "http://www.w3.org/Math/DTD/mathml3/mathml3.dtd">
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
 <mi>y</mi><mo>=</mo><mi>x</mi><mo>&minus;</mo><mn>1</mn>
</mrow>
</math>
]]>
</fo:instream-foreign-object>

The typical content-type is "application/mathml+xml".

CGM

Supports Computer Graphics Metafiles as defined in ISO/IEC 8632 and WebCGM 2.1. CGM graphic is embedded as vector graphic into the PDF without raster degradation. About the CGM conformances, please refer to CGM Conformance page. Supported CGM is binary encoded file defined in ISO8632-3.

CAUTION: The original rendering function of CGM is an option. You will need to purchase "AH Formatter CGM Option" separately.

CGM in gzip file format is also supported. The content-type is "image/cgm".

PDF

Although it is not an image, AH Formatter V6.4 can treat PDF like an image. See also PDF Embedding in PDF Output.

Embedded PDF has the following restrictions on viewing and printing. Also, the same restrictions apply to the PDF embedded in PostScript, SVG, and XPS format.

The content-type is "application/pdf".

Video/Audio

Multimedia data like video, audio can be embedded in PDF. See also Multimedia.