Commit 276b43aa authored by Nicolas Dufour's avatar Nicolas Dufour Committed by Nicolas Dufour

Extensions. New n-up layout extension (see bug #169955), thanks to Terry N. Brown.

Extensions. Moving Perfect Bound Cover and Printing Marks to the new Render>Layout submenu.

(bzr r10603)
parent 373a83fb
......@@ -63,7 +63,7 @@ extensions = \
fractalize.py \
funcplot.py \
gears.py\
gcodetools.py\
gcodetools.py\
generate_voronoi.py \
gimp_xcf.py \
grid_cartesian.py \
......@@ -74,7 +74,7 @@ extensions = \
handles.py \
hpgl_output.py \
ill2svg.pl \
ink2canvas.py \
ink2canvas.py \
inkex.py \
Inkscape.pm \
inkwebeffect.py \
......@@ -95,6 +95,8 @@ extensions = \
launch_webbrowser.py \
layers2svgfont.py \
svgfont2layers.py \
layout_nup.py \
layout_nup_pageframe.py \
lindenmayer.py \
lorem_ipsum.py \
markers_strokepaint.py \
......@@ -145,8 +147,8 @@ extensions = \
svgcalendar.py \
svg_regex.py \
svg_and_media_zip_output.py \
text_extract.py \
svg_transform.py \
text_extract.py \
svg_transform.py \
text_uppercase.py \
text_lowercase.py \
text_sentencecase.py \
......@@ -180,7 +182,7 @@ otherstuff = \
aisvg.xslt \
colors.xml \
jessyInk_video.svg \
svg2fxg.xsl \
svg2fxg.xsl \
svg2xaml.xsl \
xaml2svg.xsl
......@@ -233,17 +235,17 @@ modules = \
fractalize.inx \
funcplot.inx \
gears.inx\
gcodetools_about.inx\
gcodetools_area.inx\
gcodetools_check_for_updates.inx\
gcodetools_dxf_points.inx\
gcodetools_engraving.inx\
gcodetools_graffiti.inx\
gcodetools_lathe.inx\
gcodetools_orientation_points.inx\
gcodetools_path_to_gcode.inx\
gcodetools_prepare_path_for_plasma.inx\
gcodetools_tools_library.inx\
gcodetools_about.inx\
gcodetools_area.inx\
gcodetools_check_for_updates.inx\
gcodetools_dxf_points.inx\
gcodetools_engraving.inx\
gcodetools_graffiti.inx\
gcodetools_lathe.inx\
gcodetools_orientation_points.inx\
gcodetools_path_to_gcode.inx\
gcodetools_prepare_path_for_plasma.inx\
gcodetools_tools_library.inx\
generate_voronoi.inx \
gimp_xcf.inx \
grid_cartesian.inx \
......@@ -253,7 +255,7 @@ modules = \
guillotine.inx \
handles.inx \
hpgl_output.inx \
ink2canvas.inx \
ink2canvas.inx \
inkscape_help_askaquestion.inx \
inkscape_help_commandline.inx \
inkscape_help_faq.inx\
......@@ -278,6 +280,7 @@ modules = \
jessyInk_view.inx \
layers2svgfont.inx \
svgfont2layers.inx \
layout_nup.inx \
lindenmayer.inx \
lorem_ipsum.inx \
markers_strokepaint.inx \
......@@ -316,11 +319,11 @@ modules = \
split.inx \
straightseg.inx \
summersnight.inx \
svg2fxg.inx \
svg2fxg.inx \
svg2xaml.inx \
svg_and_media_zip_output.inx \
svgcalendar.inx \
text_extract.inx \
text_extract.inx \
text_uppercase.inx\
text_lowercase.inx \
text_sentencecase.inx \
......
<?xml version="1.0" encoding="UTF-8"?>
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
<_name>N-up layout</_name>
<id>org.greygreen.inkscape.effects.nup</id>
<dependency type="executable" location="extensions">layout_nup.py</dependency>
<dependency type="executable" location="extensions">layout_nup_pageframe.py</dependency>
<dependency type="executable" location="extensions">inkex.py</dependency>
<param name="tab" type="notebook">
<page name="pageDims" _gui-text="Page dimensions">
<param name="unit" _gui-text="Unit:" type="enum">
<item value="px">px</item>
<item value="pt">pt</item>
<item value="in">in</item>
<item value="cm">cm</item>
<item value="mm">mm</item>
</param>
<param name="pgSizeX" type="float" min="0.0" max="9999.0" _gui-text="Size X:">765</param>
<param name="pgSizeY" type="float" min="0.0" max="9999.0" _gui-text="Size Y:">990</param>
<_param name="pgMargin" type="description" appearance="header">Page margins</_param>
<param name="pgMarginTop" type="float" indent="1" min="0.0" max="9999.0" _gui-text="Top:">0</param>
<param name="pgMarginBottom" type="float" indent="1" min="0.0" max="9999.0" _gui-text="Bottom:">0</param>
<param name="pgMarginLeft" type="float" indent="1" min="0.0" max="9999.0" _gui-text="Left:">0</param>
<param name="pgMarginRight" type="float" indent="1" min="0.0" max="9999.0" _gui-text="Right:">0</param>
</page>
<page name="layoutDims" _gui-text="Layout dimensions">
<param name="rows" type="int" min="1" max="9999" _gui-text="Rows:">2</param>
<param name="cols" type="int" min="1" max="9999" _gui-text="Cols:">2</param>
<param name="sizeX" type="float" min="1" max="9999" _gui-text="Size X:">100</param>
<param name="sizeY" type="float" min="1" max="9999" _gui-text="Size Y:">200</param>
<param name="calculateSize" type="boolean" _gui-text="Auto calculate layout size">true</param>
<_param name="padding" type="description" appearance="header">Layout padding</_param>
<param name="paddingTop" type="float" indent="1" min="0.0" max="9999.0" _gui-text="Top:">12</param>
<param name="paddingBottom" type="float" indent="1" min="0.0" max="9999.0" _gui-text="Bottom:">12</param>
<param name="paddingLeft" type="float" indent="1" min="0.0" max="9999.0" _gui-text="Left:">12</param>
<param name="paddingRight" type="float" indent="1" min="0.0" max="9999.0" _gui-text="Right:">12</param>
<_param name="margin" type="description" appearance="header">Layout margins</_param>
<param name="marginTop" type="float" indent="1" min="0.0" max="9999.0" _gui-text="Top:">0</param>
<param name="marginBottom" type="float" indent="1" min="0.0" max="9999.0" _gui-text="Bottom:">0</param>
<param name="marginLeft" type="float" indent="1" min="0.0" max="9999.0" _gui-text="Left:">0</param>
<param name="marginRight" type="float" indent="1" min="0.0" max="9999.0" _gui-text="Right:">0</param>
</page>
<page name="marks" _gui-text="Marks">
<param name="showHolder" type="boolean" _gui-text="Place holder">true</param>
<param name="showCrosses" type="boolean" _gui-text="Cutting marks">true</param>
<param name="showInner" type="boolean" _gui-text="Padding guide">true</param>
<param name="showOuter" type="boolean" _gui-text="Margin guide">false</param>
<param name="showInnerBox" type="boolean" _gui-text="Padding box">false</param>
<param name="showOuterBox" type="boolean" _gui-text="Margin box">0</param>
</page>
<page name="help" _gui-text="Help">
<_param name="instructions" type="description" xml:space="preserve">
Parameters:
* Page size: width and height.
* Page margins: extra space around each page.
* Layout rows and cols.
* Layout size: width and height, auto calculated if one is 0.
* Auto calculate layout size: don't use the layout size values.
* Layout margins: white space around each part of the layout.
* Layout padding: inner padding for each part of the layout.
</_param>
</page>
</param>
<effect needs-live-preview="true">
<object-type>all</object-type>
<effects-menu>
<submenu _name="Render">
<submenu _name="Layout"/>
</submenu>
</effects-menu>
</effect>
<script>
<command reldir="extensions" interpreter="python">layout_nup.py</command>
</script>
</inkscape-extension>
#!/usr/bin/env python
'''
Copyright (C) 2007 Terry Brown, terry_n_brown@yahoo.com
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
'''
import inkex
import sys
import layout_nup_pageframe
class Nup(inkex.Effect):
def __init__(self):
inkex.Effect.__init__(self)
opts = [('', '--unit', 'string', 'unit', 'px', ''),
('', '--rows', 'int', 'rows', '2', ''),
('', '--cols', 'int', 'cols', '2', ''),
('', '--paddingTop', 'string', 'paddingTop', '', ''),
('', '--paddingBottom', 'string', 'paddingBottom', '', ''),
('', '--paddingLeft', 'string', 'paddingLeft', '', ''),
('', '--paddingRight', 'string', 'paddingRight', '', ''),
('', '--marginTop', 'string', 'marginTop', '', ''),
('', '--marginBottom', 'string', 'marginBottom', '', ''),
('', '--marginLeft', 'string', 'marginLeft', '', ''),
('', '--marginRight', 'string', 'marginRight', '', ''),
('', '--pgSizeX', 'string', 'pgSizeX', '', ''),
('', '--pgSizeY', 'string', 'pgSizeY', '', ''),
('', '--sizeX', 'string', 'sizeX', '', ''),
('', '--sizeY', 'string', 'sizeY', '', ''),
('', '--calculateSize', 'inkbool', 'calculateSize', True, ''),
('', '--pgMarginTop', 'string', 'pgMarginTop', '', ''),
('', '--pgMarginBottom', 'string', 'pgMarginBottom', '', ''),
('', '--pgMarginLeft', 'string', 'pgMarginLeft', '', ''),
('', '--pgMarginRight', 'string', 'pgMarginRight', '', ''),
('', '--showHolder', 'inkbool', 'showHolder', True, ''),
('', '--showCrosses', 'inkbool', 'showCrosses', True, ''),
('', '--showInner', 'inkbool', 'showInner', True, ''),
('', '--showOuter', 'inkbool', 'showOuter', False, ''),
('', '--showInnerBox', 'inkbool', 'showInnerBox', False, ''),
('', '--showOuterBox', 'inkbool', 'showOuterBox', False, ''),
('', '--tab', 'string', 'tab', '', ''),
]
for o in opts:
self.OptionParser.add_option(o[0], o[1], action="store", type=o[2],
dest=o[3], default=o[4], help=o[5])
def effect(self):
showList = []
for i in ['showHolder','showCrosses','showInner','showOuter',
'showInnerBox','showOuterBox',]:
if getattr(self.options, i):
showList.append(i.lower().replace('show', ''))
o = self.options
self.pf = layout_nup_pageframe.GenerateNup(
unit=o.unit,
pgSize=(o.pgSizeX,o.pgSizeY),
pgMargin=(o.pgMarginTop,o.pgMarginRight,o.pgMarginBottom,o.pgMarginLeft),
num=(o.rows,o.cols),
calculateSize = o.calculateSize,
size=(o.sizeX,o.sizeY),
margin=(o.marginTop,o.marginRight,o.marginBottom,o.marginLeft),
padding=(o.paddingTop,o.paddingRight,o.paddingBottom,o.paddingLeft),
show=showList,
)
def setAttr(self, node, name, value):
attr = node.ownerDocument.createAttribute(name)
attr.value = value
node.attributes.setNamedItem(attr)
def output(self):
sys.stdout.write(self.pf)
e = Nup()
e.affect()
#@+leo-ver=4-thin
#@+node:tbrown.20070622094435.1:@thin pageframe.py
"""Create n-up SVG layouts"""
#@+others
#@+node:tbrown.20070622103716:imports
import sys, inkex
try:
import xml.etree.ElementTree as ElementTree
except:
try:
from lxml import etree as ElementTree
except:
try:
from elementtree.ElementTree import ElementTree
except:
sys.stderr.write("""Requires ElementTree module, included
in Python 2.5 or supplied by lxml or elementtree modules.
""")
#@-node:tbrown.20070622103716:imports
#@+node:tbrown.20070622103716.1:expandTuple
def expandTuple(unit, x, length = 4):
try:
iter(x)
except:
return None
if len(x) != length: x = x*2
if len(x) != length:
raise Exception("expandTuple: requires 2 or 4 item tuple")
try:
return tuple(map(lambda ev: (inkex.unittouu(str(eval(str(ev)))+unit)), x))
except:
return None
#@-node:tbrown.20070622103716.1:expandTuple
#@+node:tbrown.20070622103716.2:GenerateNup
def GenerateNup(unit="px",
pgSize=("8.5*90","11*90"),
pgMargin=(0,0),
pgPadding=(0,0),
num=(2,2),
calculateSize=True,
size=None,
margin=(0,0),
padding=(20,20),
show=['default'],
container='svg',
returnTree = False,
):
"""Generate the SVG. Inputs are run through 'eval(str(x))' so you can use
'8.5*72' instead of 612. Margin / padding dimension tuples can be
(top & bottom, left & right) or (top, right, bottom, left).
Keyword arguments:
pgSize -- page size, width x height
pgMargin -- extra space around each page
pgPadding -- added to pgMargin
n -- rows x cols
size -- override calculated size, width x height
margin -- white space around each piece
padding -- inner padding for each piece
show -- list of keywords indicating what to show
- 'crosses' - cutting guides
- 'inner' - inner boundary
- 'outer' - outer boundary
container -- 'svg' or 'g'
returnTree -- whether to return the ElementTree or the string
"""
if 'default' in show:
show = set(show).union(['inner', 'innerbox', 'holder', 'crosses'])
pgMargin = expandTuple(unit, pgMargin)
pgPadding = expandTuple(unit, pgPadding)
margin = expandTuple(unit, margin)
padding = expandTuple(unit, padding)
pgSize = expandTuple(unit, pgSize, length = 2)
# num = tuple(map(lambda ev: eval(str(ev)), num))
pgEdge = map(sum,zip(pgMargin, pgPadding))
top, right, bottom, left = 0,1,2,3
width, height = 0,1
rows, cols = 0,1
size = expandTuple(unit, size, length = 2)
if size == None or calculateSize == True or len(size) < 2 or size[0] == 0 or size[1] == 0:
size = ((pgSize[width]
- pgEdge[left] - pgEdge[right]
- num[cols]*(margin[left] + margin[right])) / num[cols],
(pgSize[height]
- pgEdge[top] - pgEdge[bottom]
- num[rows]*(margin[top] + margin[bottom])) / num[rows]
)
else:
size = expandTuple(unit, size, length = 2)
# sep is separation between same points on pieces
sep = (size[width]+margin[right]+margin[left],
size[height]+margin[top]+margin[bottom])
style = 'stroke:#000000;stroke-opacity:1;fill:none;fill-opacity:1;'
padbox = 'rect', {
'x': str(pgEdge[left] + margin[left] + padding[left]),
'y': str(pgEdge[top] + margin[top] + padding[top]),
'width': str(size[width] - padding[left] - padding[right]),
'height': str(size[height] - padding[top] - padding[bottom]),
'style': style,
}
margbox = 'rect', {
'x': str(pgEdge[left] + margin[left]),
'y': str(pgEdge[top] + margin[top]),
'width': str(size[width]),
'height': str(size[height]),
'style': style,
}
doc = ElementTree.ElementTree(ElementTree.Element(container,
{'xmlns:inkscape':"http://www.inkscape.org/namespaces/inkscape",
'xmlns:xlink':"http://www.w3.org/1999/xlink",
'width':str(pgSize[width]),
'height':str(pgSize[height]),
}))
sub = ElementTree.SubElement
root = doc.getroot()
def makeClones(under, to):
for r in range(0,num[rows]):
for c in range(0,num[cols]):
if r == 0 and c == 0: continue
sub(under, 'use', {
'xlink:href': '#' + to,
'transform': 'translate(%f,%f)' %
(c*sep[width], r*sep[height])})
# guidelayer #####################################################
if set(['inner', 'outer']).intersection(show):
layer = sub(root, 'g', {'id':'guidelayer',
'inkscape:groupmode':'layer'})
if 'inner' in show:
padbox[1]['id'] = 'innerguide'
padbox[1]['style'] = padbox[1]['style'].replace('stroke:#000000',
'stroke:#8080ff')
sub(layer, *padbox)
del padbox[1]['id']
padbox[1]['style'] = padbox[1]['style'].replace('stroke:#8080ff',
'stroke:#000000')
makeClones(layer, 'innerguide')
if 'outer' in show:
margbox[1]['id'] = 'outerguide'
margbox[1]['style'] = padbox[1]['style'].replace('stroke:#000000',
'stroke:#8080ff')
sub(layer, *margbox)
del margbox[1]['id']
margbox[1]['style'] = padbox[1]['style'].replace('stroke:#8080ff',
'stroke:#000000')
makeClones(layer, 'outerguide')
# crosslayer #####################################################
if set(['crosses']).intersection(show):
layer = sub(root, 'g', {'id':'cutlayer',
'inkscape:groupmode':'layer'})
if 'crosses' in show:
crosslen = 12
group = sub(layer, 'g', id='cross')
x,y = 0,0
path = 'M%f %f' % (x+pgEdge[left] + margin[left],
y+pgEdge[top] + margin[top]-crosslen)
path += ' L%f %f' % (x+pgEdge[left] + margin[left],
y+pgEdge[top] + margin[top]+crosslen)
path += ' M%f %f' % (x+pgEdge[left] + margin[left]-crosslen,
y+pgEdge[top] + margin[top])
path += ' L%f %f' % (x+pgEdge[left] + margin[left]+crosslen,
y+pgEdge[top] + margin[top])
sub(group, 'path', style=style+'stroke-width:0.05',
d = path, id = 'crossmarker')
for r in 0, 1:
for c in 0, 1:
if r or c:
x,y = c*size[width], r*size[height]
sub(group, 'use', {
'xlink:href': '#crossmarker',
'transform': 'translate(%f,%f)' %
(x,y)})
makeClones(layer, 'cross')
# clonelayer #####################################################
layer = sub(root, 'g', {'id':'clonelayer', 'inkscape:groupmode':'layer'})
makeClones(layer, 'main')
# mainlayer ######################################################
layer = sub(root, 'g', {'id':'mainlayer', 'inkscape:groupmode':'layer'})
group = sub(layer, 'g', {'id':'main'})
if 'innerbox' in show:
sub(group, *padbox)
if 'outerbox' in show:
sub(group, *margbox)
if 'holder' in show:
x, y = (pgEdge[left] + margin[left] + padding[left],
pgEdge[top] + margin[top] + padding[top])
w, h = (size[width] - padding[left] - padding[right],
size[height] - padding[top] - padding[bottom])
path = 'M%f %f' % (x + w/2., y)
path += ' L%f %f' % (x + w, y + h/2.)
path += ' L%f %f' % (x + w/2., y + h)
path += ' L%f %f' % (x, y + h/2.)
path += ' Z'
sub(group, 'path', style=style, d = path)
if returnTree:
return doc
else:
return ElementTree.tostring(root)
if __name__ == '__main__':
print GenerateNup(num=(10,3), margin=(5,5), show=['default', 'outer'])
#@-node:tbrown.20070622103716.2:GenerateNup
#@-others
#@-node:tbrown.20070622094435.1:@thin pageframe.py
#@-leo
......@@ -5,34 +5,36 @@
<dependency type="executable" location="extensions">perfectboundcover.py</dependency>
<dependency type="executable" location="extensions">inkex.py</dependency>
<_param name="book" type="description" appearance="header">Book Properties</_param>
<param name="width" precision="3" type="float" min="0.0" max="100.000" _gui-text="Book Width (inches):">6</param>
<param name="height" precision="3" type="float" min="0.0" max="100.000" _gui-text="Book Height (inches):">9</param>
<param name="pages" type="int" min="4" max="6000" _gui-text="Number of Pages:">64</param>
<param name="removeguides" type="boolean" _gui-text="Remove existing guides">true</param>
<param name="width" precision="3" type="float" indent="1" min="0.0" max="100.000" _gui-text="Book Width (inches):">6</param>
<param name="height" precision="3" type="float" indent="1" min="0.0" max="100.000" _gui-text="Book Height (inches):">9</param>
<param name="pages" type="int" indent="1" min="4" max="6000" _gui-text="Number of Pages:">64</param>
<param name="removeguides" type="boolean" indent="1" _gui-text="Remove existing guides">true</param>
<_param name="paper" type="description" appearance="header">Interior Pages</_param>
<param name="paperthicknessmeasurement" _gui-text="Paper Thickness Measurement:" type="enum">
<param name="paperthicknessmeasurement" _gui-text="Paper Thickness Measurement:" type="enum" indent="1">
<_item value="ppi">Pages Per Inch (PPI)</_item>
<_item value="caliper">Caliper (inches)</_item>
<_item value="points">Points</_item>
<_item value="bond_weight">Bond Weight #</_item>
<_item value="width">Specify Width</_item>
</param>
<param precision="4" name="paperthickness" type="float" min="0.000" max="1000.000" _gui-text="Value:">0</param>
<param precision="4" name="paperthickness" type="float" indent="1" min="0.000" max="1000.000" _gui-text="Value:">0</param>
<_param name="cover" type="description" appearance="header">Cover</_param>
<param name="coverthicknessmeasurement" _gui-text="Cover Thickness Measurement:" type="enum">
<param name="coverthicknessmeasurement" _gui-text="Cover Thickness Measurement:" type="enum" indent="1">
<_item value="ppi">Pages Per Inch (PPI)</_item>
<_item value="caliper">Caliper (inches)</_item>
<_item value="points">Points</_item>
<_item value="bond_weight">Bond Weight #</_item>
<_item value="width">Specify Width</_item>
</param>
<param precision="4" name="coverthickness" type="float" min="0.000" max="1000.000" _gui-text="Value:">0</param>
<param precision="3" name="bleed" type="float" min="0.000" max="1.000" _gui-text="Bleed (in):">.25</param>
<_param name="warning" type="description">Note: Bond Weight # calculations are a best-guess estimate.</_param>
<param precision="4" name="coverthickness" type="float" indent="1" min="0.000" max="1000.000" _gui-text="Value:">0</param>
<param precision="3" name="bleed" type="float" indent="1" min="0.000" max="1.000" _gui-text="Bleed (in):">.25</param>
<_param name="warning" type="description" indent="1">Note: Bond Weight # calculations are a best-guess estimate.</_param>
<effect>
<object-type>all</object-type>
<effects-menu>
<submenu _name="Render"/>
<submenu _name="Render">
<submenu _name="Layout"/>
</submenu>
</effects-menu>
</effect>
<script>
......
<?xml version="1.0" encoding="UTF-8"?>
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
<_name>Printing Marks</_name>
<id>org.inkscape.printing.marks</id>
<dependency type="executable" location="extensions">printing-marks.py</dependency>
<dependency type="executable" location="extensions">inkex.py</dependency>
<_name>Printing Marks</_name>
<id>org.inkscape.printing.marks</id>
<dependency type="executable" location="extensions">printing-marks.py</dependency>
<dependency type="executable" location="extensions">inkex.py</dependency>
<param name="tab" type="notebook">
<page name="marks" _gui-text="Marks">
<param name="crop_marks" type="boolean" _gui-text="Crop Marks">true</param>
<param name="bleed_marks" type="boolean" _gui-text="Bleed Marks">false</param>
<param name="registration_marks" type="boolean" _gui-text="Registration Marks">true</param>
<param name="star_target" type="boolean" _gui-text="Star Target">false</param>
<param name="colour_bars" type="boolean" _gui-text="Color Bars">true</param>
<param name="page_info" type="boolean" _gui-text="Page Information">false</param>
</page>
<page name="pos" _gui-text="Positioning">
<param name="where" type="enum" _gui-text="Set crop marks to:">
<_item value="canvas">Canvas</_item>
<_item value="selection">Selection</_item>
</param>
<param name="unit" _gui-text="Unit:" type="enum">
<item value="px">px</item>
<item value="pt">pt</item>
<item value="in">in</item>
<item value="cm">cm</item>
<item value="mm">mm</item>
</param>
<param name="crop_offset" type="float" min="0.0" max="9999.0" _gui-text="Offset:">5</param>
<_param name="bleed_settings" type="description" appearance="header">Bleed Margin</_param>
<param name="bleed_top" type="float" min="0.0" max="9999.0" _gui-text="Top:">5</param>
<param name="bleed_bottom" type="float" min="0.0" max="9999.0" _gui-text="Bottom:">5</param>
<param name="bleed_left" type="float" min="0.0" max="9999.0" _gui-text="Left:">5</param>
<param name="bleed_right" type="float" min="0.0" max="9999.0" _gui-text="Right:">5</param>
</page>
</param>
<param name="tab" type="notebook">
<page name="marks" _gui-text="Marks">
<param name="crop_marks" type="boolean" _gui-text="Crop Marks">true</param>
<param name="bleed_marks" type="boolean" _gui-text="Bleed Marks">false</param>
<param name="registration_marks" type="boolean" _gui-text="Registration Marks">true</param>
<param name="star_target" type="boolean" _gui-text="Star Target">false</param>
<param name="colour_bars" type="boolean" _gui-text="Color Bars">true</param>
<param name="page_info" type="boolean" _gui-text="Page Information">false</param>
</page>
<page name="pos" _gui-text="Positioning">
<param name="where" type="enum" _gui-text="Set crop marks to:">
<_item value="canvas">Canvas</_item>
<_item value="selection">Selection</_item>
</param>
<param name="unit" _gui-text="Unit:" type="enum">
<item value="px">px</item>
<item value="pt">pt</item>
<item value="in">in</item>
<item value="cm">cm</item>
<item value="mm">mm</item>
</param>
<param name="crop_offset" type="float" min="0.0" max="9999.0" _gui-text="Offset:">5</param>
<_param name="bleed_settings" type="description" appearance="header">Bleed Margin</_param>
<param name="bleed_top" type="float" indent="1" min="0.0" max="9999.0" _gui-text="Top:">5</param>
<param name="bleed_bottom" type="float" indent="1" min="0.0" max="9999.0" _gui-text="Bottom:">5</param>
<param name="bleed_left" type="float" indent="1" min="0.0" max="9999.0" _gui-text="Left:">5</param>
<param name="bleed_right" type="float" indent="1" min="0.0" max="9999.0" _gui-text="Right:">5</param>
</page>
</param>
<effect needs-live-preview="false">
<object-type>all</object-type>
<effects-menu>
<submenu _name="Render"/>
</effects-menu>
</effect>
<effect needs-live-preview="false">
<object-type>all</object-type>
<effects-menu>
<submenu _name="Render">
<submenu _name="Layout"/>
</submenu>
</effects-menu>
</effect>
<script>
<command reldir="extensions" interpreter="python">printing-marks.py</command>
</script>
<script>
<command reldir="extensions" interpreter="python">printing-marks.py</command>
</script>
</inkscape-extension>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment