Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
XML::Handler::AxPoint(User Contributed Perl DocumentatXML::Handler::AxPoint(3)

       XML::Handler::AxPoint - AxPoint XML to PDF Slideshow generator

       Using SAX::Machines:

	 use XML::SAX::Machines	qw(Pipeline);
	 use XML::Handler::AxPoint;

	 Pipeline( XML::Handler::AxPoint->new()	)->parse_uri("presentation.axp");

       Or using	directly:

	 use XML::SAX;
	 use XML::Handler::AxPoint;

	 my $parser = XML::SAX::ParserFactory->parser(
	     Handler =>	XML::Handler::AxPoint->new(
		 Output	=> "presentation.pdf"


       This module is a	port and enhancement of	the AxKit presentation tool,
       AxPoint.	It takes an XML	description of a slideshow, and	generates a
       PDF. The	resulting presentations	are very nice to look at, possibly
       rivalling PowerPoint, and almost	certainly better than most other
       freeware	presentation tools on Unix/Linux.

       The presentations support slide transitions, PDF	bookmarks, bullet
       points, source code (fixed font)	sections, images, SVG vector graphics,
       tables, colours,	bold and italics, hyperlinks, and transition effects
       for all the bullet points, source, and image sections.

       This is the outer element, and must always be present.

       Optional	attributes:

       o   default-transition -	contains the transition	to be used for each
	   slide in the	slideshow. See the details of transitions below.

       o   coordinates - either	"svg" or "old".	By default the AxPoint
	   graphics are	drawn using SVG-style coordinates, however prior to
	   cvs id 1.45 the coordinates were inverted due to lazy coding. If
	   you have presentations prior	to this	version, or you	want
	   coordinates to start	at the top of the screen, specify

	   <title>My First Presentation</title>

       The title of the	slideshow, used	on the first (title) slide.

	    <speaker>Matt Sergeant</speaker>
	    <organisation> Ltd</organisation>
	    <logo scale="0.4">ax_logo.png</logo>
	    <background	scale="1.1page">redbg.png</background>
	    <bullet level="1">n</bullet>
	    <bullet level="2">l</bullet>
	    <bullet level="3">u</bullet>
	    <bullet level="4">F</bullet>
	    <numbers level="3">item#$1 -</numbers>
	    <numbers level="4">($a)</numbers>

       Metadata	for the	slideshow. Speaker and Organisation are	used on	the
       first (title) slide, and	the email and link are turned into hyperlinks.

       The background and logo are used	on every slide.

       The bullet tags define the bullet characters (taken from	the
       ZapfDingbats font) to be	used for various point levels.

       Using the numbers tag, you can customize	list numbering.	The text
       contained is used as-is,	with special sequences replaced	by the current
       point number: $1	= plain	arabic digits, $a/$A = lower-/uppercase
       letters,	$i/$I =	lower/uppercase	roman numbers and $$ = a plain dollar

       You are allowed to put <metadata> sections between slides to override
       settings	for all	following slides.

	   <title>A subset of the show</title>
	   <subtitle>And a subtitle for	it</subtitle>

       A slideset groups slides	into relevant subsets, with a title and	a new
       level in	the bookmarks for the PDF.

       The title and subtitle tags can have "href" attributes which turn those
       texts into links.

       Slidesets may be	nested,	in which case you can create a
       chapter-section-subsection-... structure. Mixing	slides and slidesets
       on the same level will likewise produce the expected results.

	 <slide	transition="dissolve">
	     <point>Perl's XML Capabilities</point>
	   <source-code>use XML::SAX;</source-code>

       The slide tag defines a single slide. Each top level tag	in the slide
       can have	a "transition" attribute, which	either defines a transition
       for the entire slide, or	for the	individual top level items.

       The valid settings for transition are:

	   The default.	Just replace the old page. Use this on top level page
	   items to make them appear one by one.

	   Two lines sweeping across the screen	reveal the page

	   Multiple lines sweep	across the screen to reveal the	page

       box A box reveals the page

	   A single line sweaping across the screen reveals the	page

	   The old page	dissolves to reveal the	new page

	   The dissolve	effect moves from one screen edge to another

       For example, to have each point on a slide reveal themselves one	by

	   <title>Transitioning	Bullet Points</title>
	     <point transition="replace">Point 1</point>
	     <point transition="replace">Point 2</point>
	     <point transition="replace">Final Point</point>

       The point specifies a bullet point to place on your slide.

       The point may have a "href" attribute, a	"transition" attribute,	and a
       "level" attribute. The "level" attribute	is still supported and
       defaults	to 1.  However,	it is recommended to use <list>	tags to
       indicate	nesting.  The level can	go down	as far as you please, though
       you might need to define	bullets	with <bullet> in <metadata> for	levels
       greater than 4.

       The list	optionally takes a flag, ordered="ordered", to indicate	that
       the points below	should be numbered. <numbers> in <metadata> can	be
       used to customize numbering style.

       The <plain> tag denotes plain text to be	put on the page	without	any
       bullet point. It	takes an optional attribute "align" with values
       "left", "center", or "right".

   <source-code> or <source_code>
       The source-code tag identifies a	piece of verbatim text in a fixed font
       - originally designed for source	code.

       The image tag works in one of two ways. For backwards compatibility it
       allows you to specify the URI of	the image in the text content of the


       Or for compatibility with SVG, you can use xlink:

	 <image	xlink:href="foo.png"

       By default, the image is	placed centered	in the current column (which
       is the middle of	the slide if you are not using tables) and at the
       current text position. However you can override this using x and	y
       attributes for absolute positioning. You	may also specify a scale
       attribute to scale the image.

       Scaling specifiers can look like	this:

       o   0.5 (single float) denotes a	scaling	multiplier, 0.5	means "half
	    The	image's	DPI value is correctly used.

       o   1.5em (float	+ unit)	denotes	a fixed	width/height. Supported	units
	   are:	'em', 'ex', 'pt', 'px',	'line',	'page'.	("M" height/width, "x"
	   height/width, points, pixels, line height/width, page height/width)

       o   0.5*1.0 (two	floats)	denotes	non-uniform scaling, in	this case
	   "half width,	but full height"

       o   1.5em*0.1line (likewise with	units)

       The supported image formats are those supported by the underlying
       pdflib library: gif, jpg, png and tiff.

   <colour> or <color>
       The colour tag specifies	a colour for the text to be output. To define
       the colour, either use the "name" attribute, using one of the 16	HTML
       named colours, or use the "rgb" attribute and use a hex triplet like
       you can in HTML.

   <i>,	<b> and	<u>
       Use these tags for italics, bold	and underline within text.

   <span style="...">
       Using this tag, you can specify many text attributes in CSS syntax.

	     <col width="40%">
	     <col width="60%">

       AxPoint has some	rudimentary table support, as you can see above. This
       is fairly experimental, and does	not do any reflowing like HTML - it
       only supports fixed column widths and only as percentages. Using	a
       table allows you	to layout a slide in two columns, and also have	multi-
       row descriptions	of source code with bullet points.

	 <box x="450" y="250" width="150" height="200">
	   <plain>Some content,	as if this were	a full page</plain>

       The box tag allows you to position arbitrary content anywhere on	the
       page.  Coordinates are specified	in PDF-points, i.e., (0,0) is at the
       bottom left, and	(612,450) is at	the top	right. Note that you may only
       specify this tag	at the top level of a slide, and it is recommended to
       use it before or	after all regular content of that page,	but after the
       title. A	slide may contain any number of	box tags, however, and they
       need not	be at the same place in	the source. Note also that the height
       tag is effectively ignored - there is no	clipping.

	 <value	type="current-slide"/>
	 <value	type="today" format="%d.%m.%Y"/>

       Inserts a special variable. The type attribute selects which one:
       slideshow-title,	slide-title, logo, background, today, current-slide,
       total-slides, current-slideset, speaker,	organisation, email, link.

       Notes: The "logo" and "background" types	insert the image as specified
       by the corresponding
	tag in <metadata>, using the same size,	at the current text position.
       The 'today' type	uses an	additional 'format' attribute containing a
       sprintf() style format string (optional). The total-slides tag is
       actually	cheating - it reads the	value from the same named tag in
       <metadata>. This	is useful if you have a	preprocessing step to insert
       the correct value. With all tags, you may encounter problems if you use
       them outside of <title>,	<point>	or <plain>.

SVG Support
       AxPoint has some	SVG support so you can do vector graphics on your
       slides.	Note that the coordinate system	is different from the regular
       coordinate system, (0,0)	is at the left top with	positive y values
       going down, which makes it easier to import graphics from external

       All SVG items allow the "transition" attribute as defined above.

	 <rect x="100" y="100" width="300" height="200"
	   style="stroke: blue;	stroke-width=5;	fill: red"/>

       As you can see, AxPoint's SVG support uses CSS to define	the style. The
       above draws a rectangle with a thick blue line around it, and filled in

	 <circle cx="50" cy="100" r="50" style="stroke:	black"/>

	 <ellipse cx="100" cy="50" rx="30" ry="60" style="fill:	aqua;"/>

	 <line x1="50" y1="50" x2="200"	y2="200" style="stroke:	black;"/>

	 <text x="200" y="200"
	   style="stroke: black; fill: none; font: italic 24pt serif"
	 >Some Floating	Text</text>

       This tag	allows you to float text anywhere on the screen.

       Please use for reporting bugs.

       Matt Sergeant,

       Copyright 2002.

       This is free software, distributed under	the same terms as Perl itself.

perl v5.32.0			  2005-10-24	      XML::Handler::AxPoint(3)


Want to link to this manual page? Use this URL:

home | help