mirror of
https://github.com/nottinghamtec/PyRIGS.git
synced 2026-01-17 21:42:14 +00:00
79 lines
3.0 KiB
Python
79 lines
3.0 KiB
Python
##############################################################################
|
|
#
|
|
# Copyright (c) 2007-2012 Zope Foundation and Contributors.
|
|
# All Rights Reserved.
|
|
#
|
|
# This software is subject to the provisions of the Zope Public License,
|
|
# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
|
|
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
|
|
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
|
|
# FOR A PARTLAR PURPOSE.
|
|
#
|
|
##############################################################################
|
|
"""Testing all XML Locale functionality.
|
|
"""
|
|
import reportlab.platypus
|
|
import reportlab.lib.styles
|
|
import reportlab.graphics.widgets.markers
|
|
from reportlab.graphics import renderPDF, shapes
|
|
from reportlab.lib import colors
|
|
from z3c.rml import attr, interfaces, SampleStyleSheet
|
|
|
|
def myPreformatted(params):
|
|
return reportlab.platypus.Preformatted('''
|
|
Hey, this is a long text from a plugin. Hey, this is a long text from
|
|
a plugin. Hey, this is a long text from a plugin. Hey, this is a long
|
|
text from a plugin. Hey, this is a long text from a plugin. Hey, this
|
|
is a long text from a plugin. Hey, this is a long text from a
|
|
plugin. Hey, this is a long text from a plugin. Hey, this is a long
|
|
text from a plugin. Hey, this is a long text from a plugin. Hey, this
|
|
is a long text from a plugin. Hey, this is a long text from a
|
|
plugin. Hey, this is a long text from a plugin. Hey, this is a long
|
|
text from a plugin. Hey, this is a long text from a plugin. Hey, this
|
|
is a long text from a plugin.''',
|
|
SampleStyleSheet['Normal'])
|
|
|
|
class LinkURL(reportlab.platypus.flowables.Flowable):
|
|
def __init__(self, link):
|
|
self.link = link
|
|
|
|
def wrap(self, *args):
|
|
return (0, 0)
|
|
|
|
def draw(self):
|
|
self.canv.linkURL(self.link, None)
|
|
|
|
|
|
def linkURL(params):
|
|
params = eval(params)
|
|
return (
|
|
reportlab.platypus.Paragraph(
|
|
params[0], SampleStyleSheet['Normal']),
|
|
LinkURL(*params))
|
|
|
|
class IMarker(interfaces.IRMLDirectiveSignature):
|
|
x = attr.Measurement()
|
|
y = attr.Measurement()
|
|
dx = attr.Measurement()
|
|
dy = attr.Measurement()
|
|
size = attr.Measurement()
|
|
fillColor = attr.Color(acceptNone=True, required=False)
|
|
strokeColor = attr.Color(acceptNone=True, required=False)
|
|
strokeWidth = attr.Measurement(required=False)
|
|
arrowBarDx = attr.Measurement(required=False)
|
|
arrowHeight = attr.Measurement(required=False)
|
|
|
|
def symbols(canvas, params):
|
|
args = eval('dict(%s)' %params)
|
|
name = args.pop('name')
|
|
n = args.pop('n')
|
|
for key, value in args.items():
|
|
field = IMarker[key].bind(canvas.manager)
|
|
args[key] = field.fromUnicode(value)
|
|
m = reportlab.graphics.widgets.markers.makeMarker(name, **args)
|
|
drawing = shapes.Drawing()
|
|
drawing.add(m)
|
|
for idx in range(n):
|
|
drawing.drawOn(canvas, idx*args['dx'], idx*args['dy'])
|