Control of the layout when calling the Publisher
If you want to control the behavior of the speedata Publisher without changing any of the files (
layout.xml), you can do this in two different ways.
An example is a PDF that is to be output in different page formats (portrait and landscape) or that you provide a print PDF (with bleed) and an online PDF (with smaller images).
Control via variables
The idea here is to set variables to a certain value before calling them. This is done in the configuration file or on the command line. Example is the following layout (excerpt):
<Layout xmlns="urn:speedata.de:2009/publisher/en" xmlns:sd="urn:speedata:2009/publisher/functions/en"> <Options bleed="0mm" cutmarks="no" /> <Switch> <Case test="sd:variable-exists('output')"> <Switch> <Case test="$output = 'print'"> <Options bleed="3mm" cutmarks="yes" /> </Case> </Switch> </Case> </Switch> ... </Layout>
sp --var output=print
output is set to the value
Both specifications cause the second command
<Options> to be executed and create bleed and crop marks.
As an alternative to control via variables, it is also possible to control via the mode. The layout above would look like this:
<Layout xmlns="urn:speedata.de:2009/publisher/en" xmlns:sd="urn:speedata:2009/publisher/functions/en"> <Options bleed="0mm" cutmarks="no" /> <Switch> <Case test="sd:mode('print')"> <Options bleed="3mm" cutmarks="yes" /> </Case> </Switch> .... </Layout>
On the command line, the Publisher is started like this:
sp --mode print
The specification in the configuration file is:
The names of the mode can be chosen freely, but should not contain spaces or commas.
Several modes can be specified separated by commas:
sp --mode a,b,c
activates these three modes.
The internal variable
_mode also has a comma-separated list of modes, just as specified on the command line.
<PlaceObject> <Textblock> <Paragraph> <Value select="$_mode"></Value> </Paragraph> </Textblock> </PlaceObject>
a,b,c for example. The order of the modes in this variable does not have to be in the order in which they were specified when the Publisher was started.