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 V7.1 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-detection 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.

See URI for the data scheme and the jar scheme.

AH Formatter V7.1 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 Image Output in the XPS Output section.

When the specified image cannot be acquired because the image is not existent, etc., a substitute image will be displayed instead. However if the image is a background-image, a substitute 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”.

JPEG 2000

Supports JPEG 2000 of the following format.

  • JP2 (The content-type is “image/jp2”)

WebP

Supports WebP. The following restrictions currently exist:

  • Animated WebP displays only the first frame.

The content-type is “image/webp”.

PNG

Supports PNG (Portable Network Graphics Format). The following restrictions currently exist:

  • 16-bit color depth image will be truncated to 8-bit depth.

The content-type is “image/png”.

TIFF

Supports the TIFF files of TIFF Revision 6.0 specification.

  • No Compression
  • PackBits Compression
  • Modified Huffman
  • CCITT Group3 1D
  • CCITT Group3 2D
  • CCITT Group4
  • JPEG Compression
  • OLD JPEG Compression
  • LZW Compression
  • ZIP Compression

Supports the following color expression.

  • Grayscale
  • RGB
  • CMYK
  • YCbCr
  • CIE L*a*b*

Restrictions:

  • The following formats are not supported.
    • Tiled Image
    • Planar Configuration=2 (Planar format)
  • A YCbCr image is transformed into an RGB image when outputting to PDF.
  • 16-bit color depth image will be truncated to 8-bit depth.
  • Multi page TIFF images are not supported. Only the first image in the TIFF file will be processed.
  • Some parts of the TIFF extensions cannot be loaded properly.

The content-type is “image/tiff”.

GIF

Supports Graphics Interchange Format. The following restrictions currently exist:

  • In the case of Animation GIFs containing multiple pages, only the first page is displayed.

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:

  • Only the horizontal value for the pen width can be used. If the value is 0.0, the drawing is not processed.
  • The Bitmap specified for the brush is disregarded.
  • The calculation of physical size may not correct.
  • Clipping of Multiple rectangles is not supported.
  • The raster operation is not supported. The original copied data is drawn as is.
  • The function of clipping the characters is not supported.
  • The background of the character is always transparent.
  • The function of rotating the character from the baseline is not supported.

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:

  • Only the horizontal value for the pen width can be used. If the value is 0.0, the drawing is not processed.
  • The Bitmap specified for the brush is disregarded.
  • The calculation of physical size may not be correct.
  • The raster operation is not supported. The original copied data is drawn as is.
  • The function of clipping the characters is not supported.
  • The background of the character is always transparent.
  • The function of rotating the character from the baseline is not supported.
  • The function of clipping the bottom drawing is not supported.

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 substitute 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. At that time EPS can be embedded in PDF as PDF. (However, you cannot embed EPS as PDF to Tagged PDF.) Set EPS-processor in the Option Setting File.

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 V7.1.

The content-type is “application/postscript”.

SVG

Supports Scalable Vector Graphics (SVG) 1.1. AH Formatter V7.1 greatly enhances the display quality of SVG in PDF, PostScript through a newly developed SVG native output engine. For more details, see “SVG Conformance”. 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 considered SVG. If not, it's not considered SVG. In HTML, just having the <svg> tag is considered SVG.

If you want to include the DOCTYPE declaration in FO, enclose it with the CDATA sections as follows (example of SVG 1.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. For more details, see “MathML Conformance” . See also MathML Settings for fine tuning the rendering of MathML.

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 considered MathML. If not, it's not considered MathML. In HTML, just having the <math> tag is considered MathML.

If you want to include the DOCTYPE declaration in FO, 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:1999 and WebCGM 2.1. CGM graphic is embedded as vector graphic into the PDF without raster degradation. About the CGM conformances, see CGM Conformance page. Supported CGM is binary encoded file defined in ISO/IEC 8632-3:1999. CGM in gzip file format is also supported.

The content-type is “image/cgm”.

PDF

Although it is not an image, AH Formatter V7.1 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.

  • Text
    • “Path for Clipping” of the text rendering mode is not supported.
  • Graphics
    • The mask image is not supported if the image size is different from its original.
    • When the display is less than 32-bits, part of the blend cannot be correctly output when printing.
    • Fill patterns are not supported.
    • Form XObject is not supported.
    • Optional content group is not supported. The content cannot be selectively viewed or hidden per group.
    • The DCTDecode and the JPXDecode image formats might not be displayed by the color space.
    • Does not support some graphic functions.
  • The viewing of address, document outline and thumbnail images are not supported.
  • Interactive forms are not supported.

The content-type is “application/pdf”.

Video/Audio

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